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

Несколько виртуальных хостов Apache на одном сервере

Я пытаюсь настроить виртуальный хост / точку перенаправления, чтобы у меня было две разные системы на одном сайте.

пока вот что у меня есть:

NameVirtualHost 89.104.220.207:80
NameVirtualHost 89.104.220.207:1500
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost 89.104.220.207:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/******/html
     ServerName www.******.dk
     ServerAlias ******.dk
     ErrorLog /var/www/*****.dk/logs/error_log


</VirtualHost>
<VirtualHost 89.104.220.207:1500>
     ServerAdmin webmaster@example.org
     DocumentRoot /var/www/******/
     ServerName *******
     ServerAlias ******.dk
     ErrorLog /var/www/*****.dk/logs/error_log

</VirtualHost>

Я считаю, что если я перейду на 89.104.220.207:1500, я должен открыть /var/www/foo/

Однако это, похоже, не работает: когда я пытаюсь ввести I для foo, ничего не происходит, или я получаю сообщение об ошибке. Если вы перейдете на 89.104.220.207:1500, вы увидите сообщение об ошибке.

Для apache для прослушивания нестандартного порта вам нужно добавить Listen директива к httpd.conf:

Listen 1500

На SELinux защищенные машины, это вызовет apache не начать как SELinux заблокирует доступ ко всем нестандартным портам http.

Чтобы решить эту проблему:

# semanage port -a -t http_port_t -p tcp 1500

затем подтвердите, что он добавлен:

# semanage port -l | grep '^http_port_t'
http_port_t                    tcp      1500, 80, 443, 488, 8008, 8009, 8443

Примечание: semanage находится в policycoreutils-python пакет.

apache теперь должен запуститься, и виртуальный хост должен работать на нестандартном порту.


Помните, что при использовании нестандартного порта может потребоваться открыть брандмауэр:

# iptables -I INPUT -p tcp --dport 1500 -j ACCEPT
# service iptables save