Есть ли способ просмотреть имена хостов, используемые входящим трафиком, принимаемым моим веб-сервером apache?
Например, предположим, что веб-сервер настроен для обработки входящего трафика для IP-адреса, но есть несколько имен хостов, которые веб-сервер может принять, например:
www.mydomain.com mydomain.com myotherdomain.com и т. д.
Мне нужно увидеть имена хостов, которые другие используют для успешного входа на мой веб-сервер.
Причина в том, что у меня есть программное обеспечение, которое автоматически генерирует некоторый трафик, идущий на мой веб-сервер, и мне нужно знать имя хоста, которое он использует, чтобы я мог правильно настроить виртуальные хосты файла Apache httpd.conf для его правильного приема.
Можно ли настроить tcpdump для просмотра веб-трафика и извлечения этого имени хоста? Или wirehark? Во всех примерах, которые я вижу, включая файл access_log Apache, есть только IP-адрес, а не имена хостов. Однако мне нужна информация об имени хоста для материала VirtualHost httpd.conf. Надеюсь, это имеет смысл.
Вы можете настроить собственный формат журнала для регистрации доступа, который будет включать эту информацию.
При необходимости измените существующие директивы ведения журнала, но вам понадобится что-то вроде этого:
LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined_with_access_host
CustomLog /var/log/wherever-you-put-it/access_log combined_with_access_host
Это запишет полученный HTTP Host
заголовок в начало строки - и если он пуст, то вместо этого строка будет начинаться с пробела.