Виртуальный хост по умолчанию для Apache 2.2 для IP-адреса

ОС: CentOS 6.9. HTTPD версия 2.2

У меня есть два IP-адреса и дюжина виртуальных хостов на одном из них. Мне нужно, чтобы можно было переключать то, что vhost отображается по умолчанию, когда посетитель открывает только IP-адрес в браузере.

В настоящее время я знаю только, что могу добиться этого, заменив виртуальные машины, а первый – по умолчанию. Я ищу лучшее решение. Есть ли это? Мне нужна какая-то директива, поэтому я могу переключить виртуальный хост по умолчанию со сценарием вместо ручного редактирования httpd.conf.

Я провел весь день по поиску в Интернете. Найдена следующая информация:

Set ServerAlias my.2nd.ip.addr – не работает для меня.

Установите VirtualHost _default_:80 вместо VirtualHost my.2nd.ip.addr:80 – не желаемый эффект.

Задайте ServerName my.2nd.ip.addr и добавьте домен как ServerAlias – все равно ничего.

Любая помощь будет оценена по достоинству.

Как вы намекали, «первый vhost» будет открыт по умолчанию при посещении по IP-адресу.

Трудная часть – это понимание того, как Apache решает, кто из них «первый»; на самом деле он сортирует активные / активированные vhosts для имени файла , а нижнее / первое имя файла в восходящем порядке, что соответствует vhost, использующему этот выигрыш в IP-адресе, и выбирается как «первый».

Поэтому независимо от имени vhost, если вы 0.conf файл как 0.conf или 0actualvhostname.conf для первого IP-адреса и, например, 1.conf для второго IP-адреса, эти файлы-хосты будут «выигрывать» и использоваться как vhosts по умолчанию, которые нужно открыть, когда ваш сервер просматривается по IP-адресу.

Это также является причиной того, что в Debian, например, файл конфигурации Apache по умолчанию по умолчанию называется 000-default.conf .

Вам также необходимо перезапустить Apache после изменения имени файла vhost; как в:

 sudo apache2ctl -k graceful