Назад | Перейти на главную страницу

Host-заголовки из запросов игнорируются?

Я читал документацию по apache, но в Debian есть много чего другого [lenny, 5.0.6].

Apache игнорирует заголовок хоста, заданный браузером: http: // x или http: // x: 81 или http: //x.mbg.local все обслуживаются, но, согласно моему определению, должны быть заблокированы. Определение x происходит из моего файла hosts [который может делать каждый]. Я новичок в apache, но на моем IIS это работает должным образом. Все браузеры работают одинаково [так что проблем с заголовком браузера нет].

Я настроил два VirtualHosts, отрывок:

ИмяVirtualHost hugo: 80

DocumentRoot / usr / share / doc Псевдоним / doc / / usr / share / doc / Параметры Индексы MultiViews FollowSymLinks Разрешить с 192.168.24.0/24

Другой VirtualHost настроен для порта 81.

Я захожу в свой файл hosts в любом поле и добавляю ip-адрес hugo под новым именем x. Затем обслуживается x, хотя заголовок хоста в apache - hugo !! Каждый пользователь из Интернета может сделать то же самое!

Теперь у меня нет надежды. Кто-нибудь может мне помочь?

Было бы действительно очень хорошо!

ОБНОВИТЬ

Теперь я просто удалил все из httpd.conf и создал два включенных сайта, чтобы упростить задачу:

Во-первых, для nagios [должен служить только при следующем:

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
and even on
http: // x: 81
also!

Затем тестовый сервер:

NameVirtualHost thor.mbg.local:80

    
    ServerName thor.mbg.local
    ServerAlias thor.mbg.local
    DocumentRoot /var/www/default
    
    Order Allow,Deny
        Allow From All
    
    

Это тоже ответы на

http:thor/
and on
http: //thor.mbg.local/
This complete configuration is accepted by apache. I could not find a default, which would override the configuration.

Возможно ли другое программное обеспечение 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 плохо иметь слишком много файлов конфигурации, вы потеряете обзор.

Большое спасибо за помощь!

br ++ мабра

Во многих конфигурациях одно из доступных определений виртуального сервера, обычно первое в файле, действует по умолчанию. По умолчанию это то, что Apache обслуживает, когда заголовки запроса не соответствуют одному из виртуальных хостов.

Если это не ответ на ваш вопрос, приведите более полный пример конфигурации, URL-адреса запроса, то, что обслуживается и что вы ожидаете получить вместо этого.


РЕДАКТИРОВАТЬ

Насколько я помню, с вашей конфигурацией, когда apache получает запрос с HTTP-заголовком Host: x, он видит, что нет определения того, что он должен делать. Nil desperandum, думает он, я подам кое-что с первого попавшегося веб-сайта, о, смотрите, есть веб-сайт Тора - я просто подам что-нибудь оттуда!

Видеть http://httpd.apache.org/docs/2.0/vhosts/details.html

Первый виртуальный хост в этом списке (первый виртуальный хост в файле конфигурации с указанным IP-адресом) имеет наивысший приоритет и перехватывает любой запрос на неизвестное имя сервера или запрос без поля заголовка Host :.

Если вас это беспокоит, настройте виртуальный хост для unknown.server.name, укажите его на пустой каталог и настройте пользовательский 404, в котором говорится: «Кто-то указал имя хоста на IP-адрес наших серверов, не договариваясь с нами о веб- сайт будет обслуживаться для этого имени хоста - извините! "

Вам не нужно использовать разные порты. Я думаю, что это источник вашего замешательства.

Последняя документация по виртуальному хостингу на основе имен (что, я думаю, именно то, что вы хотите сделать) довольно хороша:

http://httpd.apache.org/docs/current/vhosts/name-based.html