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

Хостинг Nginx и Apache в одной системе с 2 IP

Мой сервер имеет два IP-адреса 192.168.1.90 и 192.168.1.99. Я хочу, чтобы nginx прослушивал 192.168.1.99, а Apache - 192.168.1.90. Мне также нужно разместить несколько виртуальных хостов на apache.

попытался изменить ports.conf apache на

NameVirtualHost 192.168.1.90:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

А потом я разместил виртуальный хост в apache

<VirtualHost 192.168.1.90:80>
DocumentRoot /home/webmaster/www/thefactor/
ServerName www.XYZ.com
ServerAlias XYZ.cu.com

# Other directives here

</VirtualHost>

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

Любая идея, почему это происходит

Вам нужно сузить директивы Listen до 192.168.1.90, например
Listen 192.168.1.90:80
Listen 192.168.1.90:443

в противном случае Apache будет прослушивать все IP-адреса (и входящие запросы попадут на виртуальный хост по умолчанию).

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

Если вы хотите, чтобы запросы для доменов, не настроенных на сервере, но направленных на него, игнорировались, вам необходимо создать отдельный фиктивный виртуальный хост "перехвата всех", который просто отклоняет все запросы и который указан перед othosts.

<VirtualHost 192.168.1.90:80>
    #Dummy Host denies all accesses.
    Order Allow, Deny
    Deny from all
</VirtualHost>

<VirtualHost 192.168.1.90:80>
    DocumentRoot /home/webmaster/www/thefactor/
    ServerName www.XYZ.com
    ServerAlias XYZ.cu.com

    # Other directives here
</VirtualHost>