Apache:REMOTE服务器上的多个虚拟主机

我有一个IP地址为10.72.254.248的远程服务器,我想通过为每个虚拟主机提供不同的端口来在此服务器上设置多个虚拟主机。

我的httpd.conf:

Listen 80 Listen 3333 NameVirtualHost *:80 NameVirtualHost *:3333 <VirtualHost *:80> DocumentRoot "/path/to/site1/" ServerName *:80 </VirtualHost> <VirtualHost *:3333> DocumentRoot "/path/to/site2/" ServerName *:3333 </VirtualHost> 

如果没有指定端口,它将命中site1(端口80)当我去10.72.254.24810.72.254.248:80它打开site1成功

但是当我尝试10.72.254.248:3333它不起作用。

这个问题与语法有关吗? 或者也许用/ etc / hosts文件? 还是防火墙?

请帮忙

编辑:

当我尝试连接到10.72.254.248:3333时 ,出现以下错误消息:

Can't connect to server 10.72.254.248:3333

检查netstat -an并确保Apache正在监听端口3333.而不是其他人正在监听。 如果是这样,这很可能是一个防火墙问题(iptables -L和查找允许端口3333的规则)。

起初:“不起作用”是没有propper错误的描述。 你期望看到什么? 你实际观察到什么?

话虽如此,似乎你正在混合基于名称的虚拟主机和基于IP /端口的虚拟主机的概念。 在第一种情况下(您实际上需要NameVirtualHostServerName指令,可以在同一IP /端口上有多个虚拟主机,Apache通过比较客户端发送的每个请求发送的Host头的内容来决定使用哪一个)虚拟主机的ServerName的值。

在你的情况下,你有一个端口上的单个虚拟主机,这是没有必要的。 因此,您应该删除NameVirtualHost指令和ServerName指令(尽pipe如此,它们的格式不正确)。

阅读http://httpd.apache.org/docs/2.2/vhosts/name-based.html ,了解更多关于基于名称的虚拟主机概念的信息。