将域链接到特定的 Apache 端口

将域链接到特定的 Apache 端口

我需要将特定域链接到 Apache 服务器中的端口。我正在寻找类似以下内容的内容:

www.test.com     links to 127.0.0.1:80
www.sub.test.com links to 127.0.0.1:90

我已经在我的 httpd 配置中创建了两个 VirtualHosts:

<VirtualHost *:80>
    ServerName www.test.com
    DocumentRoot /var/www/html/test
</VirtualHost>

<VirtualHost *:90>
    ServerName www.sub.test.com
    DocumentRoot /var/www/html/sub-test
</VirtualHost>

但是当我尝试访问时,www.sub.test.com我得到的是port 80网站。

有人能帮我吗?

答案1

虽然您可以将域分配给端口,但 http 的默认端口是 80,因此您指定的任何没有明确端口的地址都将使用端口 80。

至于为什么你会得到另一个网站,因为你没有指定端口,浏览器使用端口 80,这是该端口唯一定义的主机。第一个定义VirtualHost很特殊,因为如果没有条目匹配,它将被选中。

为什么要使用不同的端口?只需将两个名称都使用端口 80,Apache 就会执行您想要的操作。

答案2

您尝试执行的操作是行不通的。(就 http 和大多数协议而言)域名/域条目无法映射到 IP 地址。

如果您尝试使用同一个 IP 运行 2 个网站,那么只需这样做 - 您不需要额外的端口 - http 协议根据域名来协商站点,该域名由浏览器作为 http(1.1)协议的一部分发送。

如果您需要将域名连接到在端口上运行的服务,则需要实现某种代理,其中在端口 80 上建立的连接通过代理传输到端口 90。这听起来不像您想要做的,但如果是的话,请查看 Apache 的 mod_proxy。

相关内容