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

Установить IP-адрес для каждого веб-сайта на одном сервере Linux?

Я пытаюсь настроить два веб-сайта на одном сервере для использования разных 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>