在我的本地机器上,我在 apache 中设置了几个命名虚拟主机,全部在端口 80 上。
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/site1"
ServerName http://site1.local
<Directory "site1" >
Options +Includes
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/site2"
ServerName http://site2.local
<Directory "site2" >
Options +Includes
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
为了在移动设备上进行测试,我需要通过我的机器的 IP 地址访问这些网站,在这种情况下,声明的第一个虚拟主机是默认的。我假设我需要设置一些监听不同端口的东西,以便能够访问同一 IP 地址上的多个虚拟主机,但我尝试了相当多的变化,但还是无法做到,所以使用端口在远程工作,但名称在本地仍然有效。
如何设置多个虚拟主机,让它们命名并在不同的端口上监听。这可能吗?
答案1
我最终找到了答案。
诀窍是使用
<VirtualHost *:80 *:otherportnumber>
这样,服务器名称就可以工作(因为监听:80),并且 IP 地址 + 端口号也可以工作(因为没有其他命名主机监听该端口号)
答案2
当然,您只需在<VirtualHost>
标签中指定 IP 地址即可。这意味着您需要为每个虚拟主机分配单独的 IP 地址,但如果您必须通过 IP 地址进行区分,那么您已经分配了这些 IP 地址。
答案3
该ServerName
条款应如下所示:
ServerName test.example.org
其余配置对于同一 IP 和端口上的多个虚拟主机来说没问题。对于不同的 IP,womble 的答案是正确的。