Host-заголовок из запросов игнорируется?
Я читаю документы по Apache, но есть много вещей, которые отличаются от Debian [lenny, 5.0.6].
Apache игнорирует заголовок хоста, заданный браузером: http://x/ или http://x:81/ или http://x.mbg.local/ все обслуживаются, но должны быть заблокированы, согласно моему определению. Определение для x происходит из моего файла hosts [который каждый мог сделать таким образом]. Я новичок в Apache, но на моем IIS это работает как ожидалось. Все браузеры работают одинаково [поэтому нет проблем с заголовком браузера].
Я настроил два VirtualHosts, выдержка:
ИмяВиртуалХост Гуго: 80
DocumentRoot / usr / share / doc Alias / doc / / usr / share / doc / Опции Индексы MultiViews FollowSymLinks Разрешить с 192.168.24.0/24
Другой VirtualHost настроен для порта 81.
Я иду в свой файл hosts в любом окне и добавляю ip-адрес Хьюго под новым именем x. Затем, x обслуживается, хотя host-header в apache - это hugo!! Каждый пользователь из интернета может сделать то же самое!
У меня сейчас нет надежды. Кто-нибудь может мне помочь?
Было бы очень хорошо!
ОБНОВИТЬ
Теперь я только что удалил все из httpd.conf и создал два включенных сайта, чтобы упростить процесс:
Во-первых, для Нагиос [следует подавать только на это:
http://thor:81/
NameVirtualHost thor:81
<VirtualHost thor:81> ServerName thor:81 ServerAlias thor:81 ServerPath /usr/share/nagios3 DocumentRoot /usr/share/nagios3 </VirtualHost>
но он отвечает на
http://thor.mbg.local:81/и даже наhttp://x:81/также!Затем тестовый сервер:
NameVirtualHost thor.mbg.local: 80 ServerName thor.mbg.local ServerAlias thor.mbg.local DocumentRoot /var/www/default Заказать Разрешить, Запретить Разрешить от всехЭто тоже ответы на
HTTP: Thor /и наhttp://thor.mbg.local/Эта полная конфигурация принята Apache. Я не мог найти значение по умолчанию, которое переопределило бы конфигурацию.Возможно ли другое http-серверное программное обеспечение, которое делает это правильным? (Я исхожу из IIS, где это работает.)
Теперь: понял!
Спасибо за помощь! Я не признал, что все свойства, такие как имя / IP и порты должны совпадать везде. В моем случае произошел откат к хосту по умолчанию!!!
Я запустил виртуальную машину с "play-debian" с нуля и разработал ее. Если кто-то увидит окончательное определение, вот оно:
В debians port.conf у меня теперь есть:
NameVirtualHost 192.168.26.92:80
б) в httpd.conf:
<VirtualHost 192.168.26.92:80> DocumentRoot /var/www/block <Directory /var/www/block> Options Indexes FollowSymLinks MultiViews AllowOverride None Order Allow,Deny Allow from All ##would just like to see, this is the end!!! </Directory> </VirtualHost> <VirtualHost 192.168.26.92:80> ServerName wl1 ServerAlias wl1 DocumentRoot /var/www/test80 <Directory /var/www/test80> Options Indexes FollowSymLinks MultiViews AllowOverride None Order Allow,Deny Allow from All </Directory> LogLevel debug ErrorLog /var/log/apache2/test80-error.log CustomLog /var/log/apache2/test80-access.log vhost_combined </VirtualHost> <VirtualHost 192.168.26.92:80> ServerName wl2 ServerAlias wl2 DocumentRoot /var/www/test81 <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/test81> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> LogLevel info ErrorLog /var/log/apache2/error-test81.log CustomLog /var/log/apache2/test81-access.log vhost_combined </VirtualHost>
Я считаю, что для начинающего debian плохо иметь слишком много конфигурационных файлов, вы потеряете обзор.
Большое спасибо за помощь!
уш ++mabra
2 ответа
Во многих конфигурациях одно из доступных определений виртуального сервера, обычно первое в файле, действует по умолчанию. По умолчанию Apache служит, когда заголовки запроса не соответствуют одному из виртуальных хостов.
Если это не отвечает на ваш вопрос, приведите более полный пример конфигурации, URL-адреса запроса, что обслуживается и что вы ожидали вместо этого.
РЕДАКТИРОВАТЬ
Насколько я помню, с вашей конфигурацией, когда apache получает запрос с HTTP-заголовком Host:x, он видит, что нет определения того, что он должен делать. Ноль отчаянный, думает, я подам некоторые вещи с первого веб-сайта, который появится, о, смотри, вот сайт для Тора - я просто поделюсь с этого!
См. http://httpd.apache.org/docs/2.0/vhosts/details.html
Первый vhost в этом списке (первый vhost в файле конфигурации с указанным IP-адресом) имеет самый высокий приоритет и перехватывает любой запрос на неизвестное имя сервера или запрос без поля заголовка Host:.
Если это вас беспокоит, установите виртуальный хост для unknown.server.name, укажите его в пустой директории и настройте пользовательский 404, который говорит: "Кто-то указал имя хоста на IP-адрес наших серверов, не договариваясь с нами о веб-сайте. сайт, который будет обслуживаться для этого имени хоста - извините!
Вам не нужно использовать разные порты. Я думаю, что это источник вашей путаницы здесь.
Последняя документация для виртуального хостинга на основе имен (что, я думаю, вы хотите сделать) довольно хороша: