Не, нету. Добавлено спустя 5 минут 48 секунд: Замечают, конечно. Просто на Вашу реплику я ответил постом выше. А что непонятно - во фразе: А вот почему всё-таки запрос на 80 порт с IP отличным от 127.0.0.1 попадает к s.site.ru, пока не понятно. (R)
пардон, проглядел. мдя, тут картина странная. по идее паблик дефолт на 80 порту должен быть сайт.ру, но к нему можно сделать запрос указав хост с.сайт.ру. но и в этом случае именно сайт.ру должен разобрать запрос... фигня какая-то...
может запрос идёт к порту 8081 и так попадает к s.site.ru в лог из-за этого *:8081 s.site.ru (Z:/usr/local/apache/conf/vhosts.conf:138)
Ganzal, где автор говорит что server_port относится к логу s.site.ru, а не site.ru? Chushkin, покажи все настройки apache, попробую у себя протестировать
ну. верно мыслишь. поскольку это дефолт то к нему можно обратиться с любым именем хоста и именно он его и обработает, следовательно в с.сайт.ру обращения не будет. запросы делаются с указанием хоста в строке запроса (не в отдельном заголовке) следовательно данный хост (сайт.ру) каким-то образом кто-то использует как проксю. и как следствие может быть (я вообще точно не уверен в час ночи) приходящий к паблик:80(сайт.ру) запрос с хостом с.сайт.ру и запросом (тавтология, но разница есть) гет хттп:://яндекс.ру/ сначала проксируется на с.сайт.ру - а сервер знает что у него есть такой хост на локальной петле - после чего уже идет попытка получения хттп:://яндекс.ру/. раз в логе есть статус 200 значит и второй хост успешно принял себя за прокси, сходил на яндекс, стянул страничку, от имени с.сайт.ру на лупбэке отдал страничку запрашивающему процессу сайт.ру на паблике и тот уже отдал страницу пользователю. ну как-то так...
А я вот воображаю что кто-то просканнировал порты сервера и обнаружил открытыми 80 и 8081 и шлёт на них запросы с левыми host, и вот когда шлют на порт 8081 пишет в лог для s.site.ru так как httpd -D DUMP_VHOSTS показал *:8081 s.site.ru (Z:/usr/local/apache/conf/vhosts.conf:138)
На форуме нет админов или молчат как партизаны на доросе. Пришлось самому разбираться. Всё оказалось просто, хотя не без странностей... denis01 в общем-то прав, запросы идут на порт 8081 по IP, а в заголовок запроса пихается "левая" инфа. И так, если я правильно понял, то вся "проблема" в настройках и алгоритмах апача. - SERVER_NAME это каноническое имя хоста - SERVER_PORT это канонический номер порта Эти значения зависят от UseCanonicalPhysicalPort и UseCanonicalName. Если OFF (default!), то значения устанавливаются, начиная от заголовка запроса. Отсюда и "странные" значения. Т.е. 100%-но полагаться в скрипте на SERVER_NAME и SERVER_PORT нельзя (а в логах на %V и %p), т.к. их значения зависят от настроек апача: в них значения подставляется по алгоритму апача (см. доку по UseCanonicalName и по UseCanonicalPhysicalPort). Фактически, если был запрос: 'http://95.25.###.###:8081/', а в заголовке: 'Host: пупок.васин:81', то для UseCanonicalName=OFF будет 'SERVER_NAME = пупок.васин' и в логе параметр %V также будет = пупок.васин. Для UseCanonicalPhysicalPort=OFF - 'SERVER_PORT=81' и '%p=81'. В теории, по алгоритму. Фактически, у меня почему-то канонический порт в логе (%p) всегда 80, независимо от того, что ставлю в заголовке запроса. В логах можно получить локальное имя хоста и физический порт, а вот как это сделать в PHP пока непонятно - если знаете, подскажите. В общем, непонятки с (%p %V SERVER_NAME и SERVER_PORT) затуманили мозги - я то думал, что это реальные параметры сервера, а оказалось "канонические".
Мне ближе nginx, там можно указать default_server и сделать из него заглушку, все левые запросы будут идти к нему, а там отключаем лог и рвём соединение как пример, но я не системный администратор если что.
В апаче также можно. По сути не было "левых" запросов - всё обрабатывалось как положено (по апачевски "положено"), просто надо было знать что именно так будет обработано, чтобы понимать что происходит.