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
2010-10-16 21:18
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-адрес наших серверов, не договариваясь с нами о веб-сайте. сайт, который будет обслуживаться для этого имени хоста - извините!
2010-10-16 22:26
Вам не нужно использовать разные порты. Я думаю, что это источник вашей путаницы здесь.
Последняя документация для виртуального хостинга на основе имен (что, я думаю, вы хотите сделать) довольно хороша:
2010-10-17 16:06