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

Хостинговое решение на основе Apache IP показывает тестовую страницу apache, а не веб-сайт

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