我需要将特定域链接到 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。