Я пытаюсь настроить свой виртуальный сервер для размещения веб-сайтов на основе IP. В настоящее время я пытаюсь настроить только 1 веб-сайт и использовать только 1 IP.
/etc/httpd/conf.d/example.com.conf содержимое файла:
Listen 80
NameVirtualHost xx.xxx.xx.xxx:80
<VirtualHost xx.xxx.xx.xxx:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/sites/example.com/public
ErrorLog /var/log/httpd/example.com/error.log
CustomLog /var/log/httpd/example.com/access.log combined
</VirtualHost>
Я удалил "Listen" и "NameVirtualHost" из httpd.conf и использовал их только в своих файлах example.com.conf.
Проблема, с которой я столкнулся, заключается в том, что запускается тестовая страница apache, а не веб-сайт, но как только я меняю IP-адрес на «*», он работает:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/sites/example.com/public
ErrorLog /var/log/httpd/example.com/error.log
CustomLog /var/log/httpd/example.com/access.log combined
</VirtualHost>
Есть идеи, почему это происходит?
ОБНОВИТЬ!! IP-адрес, который я пытаюсь использовать, не является IP-адресом внутренней сети, а является внешним (общедоступным) IP-адресом. У меня есть 3 публичных IP-адреса, указывающих на этот сервер.
Спасибо алекс
Поскольку у вас есть брандмауэр или какое-либо другое устройство, изменяющее IP-адрес пакета с общедоступного IP-адреса на частный, вам нужно будет использовать частный IP-адрес в конфигурации Apache для VirtualHost
. Apache будет видеть только частный IP, поэтому он не будет знать, какой публичный IP был изначально запрошен.
У тебя еще есть welcome.conf
что CentOS помещает в каталог conf Apache?
В этом нет необходимости, как только вы начнете настраивать конфигурацию Apache, и он действует как универсальный виртуальный хост по умолчанию.