配置虚拟主机以使用名称和端口号

配置虚拟主机以使用名称和端口号

在我的本地机器上,我在 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 的答案是正确的。

相关内容