Апач не хочет выдавать виртуальный сервер

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

andrystepa
Сообщения: 41
ОС: Mandriva Linux 2006

Апач не хочет выдавать виртуальный сервер

Сообщение andrystepa »

Сервер Mandriva Linux 2009 уже больше года используется как веб-сервер с несколькими виртуальными серваками. Вчера настраивал еще один. Работа вроде рутинная - ничего сложного нет. Да вот только вместо настроенного сервера вдруг был выдан совершенно другой. Конфиг Vhosts.conf:

Код: Выделить всё

################# Named VirtualHosts
NameVirtualHost 169.254.37.1
<VirtualHost 169.254.37.1>
ServerName firewall.ansaldovei.rlocal
DocumentRoot /var/www/html/firewalladmin
</VirtualHost>
<Directory /var/www/html/firewalladmin/>
    Options Indexes FollowSymLinks MultiViews ExecCgi
    AllowOverride all
    Order allow,deny
    allow from all
    DirectoryIndex index.php
    DefaultLanguage ru
    AddDefaultCharset WINDOWS-1251
</Directory>

<VirtualHost 169.254.37.1>
   ServerName          traffic.ansaldovei.local
    ServerAdmin         admin@ansaldovei.ru
   DocumentRoot        "/var/www/html/lightsquid"
   ErrorLog /var/log/httpd/error.traffic.log
   CustomLog /var/log/httpd/access.traffic.log combined
    <Directory "/var/www/html/lightsquid">
        AddHandler cgi-script .cgi
        AllowOverride All
    </Directory>
</VirtualHost>

<VirtualHost 169.254.37.1>
    ServerAdmin webmaster@localhost
    ServerName trac.ansaldovei.local
    DocumentRoot /var/www
    ErrorLog /var/log/httpd/error.trac.log
    CustomLog /var/log/httpd/access.trac.log combined

    <Location /projects>
    SetHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /var/lib/trac
    PythonOption TracUriRoot /projects
    </Location>

    <LocationMatch "/projects/[[:alnum:]]+/login">
    AuthType Basic
    AuthName "trac"
    AuthUserFile /etc/httpd/dav_svn.passwd
    Require valid-user
    </LocationMatch>
</VirtualHost>

<VirtualHost 169.254.37.1>
ServerName comps.ansaldovei.rlocal
DocumentRoot "/var/www/html/myzci_ru"
   ErrorLog /var/log/httpd/error.comps.log
   CustomLog /var/log/httpd/access.comps.log combined
<Directory /var/www/html/myzci_ru/>
    Options Indexes FollowSymLinks MultiViews ExecCgi
    AllowOverride all
    Order allow,deny
    allow from all
    DirectoryIndex index.html
    DefaultLanguage ru
    AddDefaultCharset WINDOWS-1251
</Directory>
<Directory /var/www/html/myzci_ru/manage>
  AuthType basic
  AuthUserFile /var/www/html/myzci_ru/manage/.htaccess
  AuthName "Access"
  Require valid-user
</Directory>
</VirtualHost>

Так вот, по запросу comps.ansaldovei.local был почему-то выдан fiewall. В логах апача никаких ошибок, вот только в логе доступа к firewall почему-то указан запрос к comps!
Перезапускал апач и сквид - ничего не изменилось. Закомментировал в конфиге сервер firewall, перазапустил апач и сквид - вместо comps выдается traffic. И лог пишется в лог traffic.
Кстати, при этом, когда ничего не закомментировано, traffic и firewall выдаются по соответствующим адресам без проблем!
Закомментировал traffic. Наконец Апач обратился к comps!
В чем дело? Почему до этого два (даже три) виртуальных сервера работали вместе без проблем, а этот отображается только если один?
Помогите пожалуйста!
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: Апач не хочет выдавать виртуальный сервер

Сообщение danger08 »

andrystepa писал(а):
05.02.2010 12:39
Да вот только вместо настроенного сервера вдруг был выдан совершенно другой. Конфиг Vhosts.conf:

Код: Выделить всё

################# Named VirtualHosts
NameVirtualHost 169.254.37.1
<VirtualHost 169.254.37.1>
ServerName firewall.ansaldovei.rlocal
...
</VirtualHost>
..
<VirtualHost 169.254.37.1>
   ServerName          traffic.ansaldovei.local
...
</VirtualHost>

<VirtualHost 169.254.37.1>
    ServerName trac.ansaldovei.local
...
</VirtualHost>

<VirtualHost 169.254.37.1>
ServerName comps.ansaldovei.rlocal
...
</VirtualHost>

Так вот, по запросу comps.ansaldovei.local был почему-то выдан fiewall. В логах апача никаких ошибок, вот только в логе доступа к firewall почему-то указан запрос к comps!

Если apache не находит конфигурацию виртуального сервера (конфигурация виртуального сервера не существует или содержит ошибки), то вместо запрошенного сайта по умолчанию выдается первый вирт.хост apache. В данном случае - не найден ваш виртуальный сервер (по какой-то причине), вместо него отдается первый активный виртуальный сервер из конфигурации apache.

Более подробно смотрите здесь: http://httpd.apache.org/docs/2.0/vhosts/name-based.html
Now when a request arrives, the server will first check if it is using an IP address that matches the NameVirtualHost. If it is, then it will look at each <VirtualHost> section with a matching IP address and try to find one where the ServerName or ServerAlias matches the requested hostname. If it finds one, then it uses the configuration for that server. If no matching virtual host is found, then the first listed virtual host that matches the IP address will be used.


andrystepa писал(а):
05.02.2010 12:39
Почему до этого два (даже три) виртуальных сервера работали вместе без проблем, а этот отображается только если один?

Если проблемы появляются только с добавлением comps.ansaldovei.rlocal, ищите ошибки в конфигурации этого вирт.хоста, применительно к вашей системе.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Апач не хочет выдавать виртуальный сервер

Сообщение neol »

andrystepa писал(а):
05.02.2010 12:39
ServerName comps.ansaldovei.rlocal

andrystepa писал(а):
05.02.2010 12:39
Так вот, по запросу comps.ansaldovei.local был почему-то выдан fiewall.

Действительно странно. Прям мистика какая-то.

andrystepa писал(а):
05.02.2010 12:39
NameVirtualHost 169.254.37.1

У вас там сантехники сеть настраивали или дворники?
Спасибо сказали: