同一服务器上有多个 Apache 虚拟主机

同一服务器上有多个 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 [email protected]
     DocumentRoot /var/www/******/html
     ServerName www.******.dk
     ServerAlias ******.dk
     ErrorLog /var/www/*****.dk/logs/error_log


</VirtualHost>
<VirtualHost 89.104.220.207:1500>
     ServerAdmin [email protected]
     DocumentRoot /var/www/******/
     ServerName *******
     ServerAlias ******.dk
     ErrorLog /var/www/*****.dk/logs/error_log

</VirtualHost>

我的想法是,如果我去 89.104.220.207:1500 那么我应该打开/var/www/foo/

但是这似乎不起作用:当我尝试为 foo 输入 I 时,什么都没有发生,或者我得到了一个错误。如果你转到 89.104.220.207:1500,你会看到你得到了一个错误。

答案1

为了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

注意: semanagepolicycoreutils-python包装内。

apache现在应该启动并且虚拟主机应该在非标准端口上工作。


请记住,当使用非标准端口时,可能需要打开防火墙:

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

相关内容