Я пытаюсь настроить два веб-сайта на одном сервере для использования разных IP-адресов. Я установил виртуальный IP-адрес и настроил виртуальный хост. Я перезапустил сеть после добавления интерфейса и перезапустил apache после добавления виртуального хоста.
Однако IP-адрес по умолчанию для 2-го сайта все еще определяется. Что я делаю не так?
СЕРВЕР
CentOS версии 6.3 (el6.x86_64 GNU / Linux)
IFCONFIG
eth0 Link encap:Ethernet
inet addr:12.34.567.89 Bcast:12.34.567.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth0:1 Link encap:Ethernet
inet addr:12.34.567.90 Bcast:12.34.567.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
HTTP CONF
NameVirtualHost 12.34.567.89
NameVirtualHost 12.34.567.90
<VirtualHost 12.34.567.89>
DocumentRoot /var/www/html
ServerName website1.com
</VirtualHost>
<VirtualHost 12.34.567.90>
DocumentRoot /var/www/html
ServerName website2.com
</VirtualHost>
ПИНГ
# ping website2.com
PING website2.com (12.34.567.89) 56(84) bytes of data.
Если я просматриваю 12.34.567.90, он указывает на неправильный веб-сайт: website1.com вместо website2.com
Любая помощь будет оценена по достоинству, поскольку я занимался этим в течение нескольких недель.
Примечание. Конкретные IP-адреса были упрощены, а не связанный контент удален.
# ping website2.com
PING website2.com (12.34.567.89) 56(84) bytes of data.
На то, что разрешается имя хоста, не влияет ваша конфигурация Apache, а исключительно DNS-записи ваших доменов.
В соответствии с ping
, website2.com разрешается до 12.34.567.89, но единственный (и поэтому по умолчанию) vhost для 12.34.567.89 - это website1.com, поэтому вы попадаете на website1.
Поэтому вам следует проверить, правильно ли настроены ваши записи DNS.
Если у вас есть разные IP-адреса для двух серверов, вам не следует использовать NameVirtualHost
. Эта директива предназначена специально для того, чтобы иметь более одного сайта на одном IP-адресе. Так что удалите эти две директивы.
Кроме того, в опубликованной вами конфигурации оба веб-сайта имеют одинаковый DocumentRoot, что означает, что они будут обслуживать один и тот же контент. Но, может быть, это одна из вещей, которую вы запутали?
есть листинг apache на всех IP-адресах?
запустить RHEL / CentOS
netstat -ntlp |grep httpd
или для Debian / Ubuntu
netstat -ntlp |grep apache2
я думаю ИмяVirtualHost директивы вводят виртуальный хостинг на основе имени, попробуйте удалить их. Убедитесь, что у вас есть подходящая директива прослушивания
Listen 80
Глядя на документация они также помещают порт в определение виртуального хоста, поэтому попробуйте
Listen 80
<VirtualHost 12.34.567.89:80>
DocumentRoot /var/www/html
ServerName website1.com
</VirtualHost>
<VirtualHost 12.34.567.90:80>
DocumentRoot /var/www/html
ServerName website2.com
</VirtualHost>