我有以下虚拟主机文件。我有 2 个应用程序在端口 26876 和 6876 上运行。当我将其添加到我的虚拟主机时,它只会转到两个域上的 26876 站点。这里可能出了什么问题?
<VirtualHost *:*>
ServerName xxx.abc.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:26876/
ProxyPassReverse / http://127.0.0.1:26876/
</VirtualHost>
<VirtualHost *:*>
ServerName yyy.abc.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:6876/
ProxyPassReverse / http://127.0.0.1:6876/
</VirtualHost>
答案1
这可能是什么问题?
不幸的是,您的问题可能缺少一些相关信息。
仅使用<VirtualHost *:*>
语句,具有单独子域的虚拟主机应基于ServerName
(例如xxx.example.com
,yyy.example.com
)正常工作。也就是说,单独来看,上述虚拟主机示例应该没有任何问题。
解决方案?
正如评论中所建议的,您可以尝试在语句中指定端口号,<VirtualHost>
例如:
<VirtualHost *:80>
ServerName xxx.abc.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:26876/
ProxyPassReverse / http://127.0.0.1:26876/
</VirtualHost>
<VirtualHost *:80>
ServerName yyy.abc.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:6876/
ProxyPassReverse / http://127.0.0.1:6876/
</VirtualHost>
这比使用任何 IP/任何端口(*.*
)更常见,并且在某些情况下会产生影响。
以上内容假设您尝试使用 HTTP(端口 80)进行连接。HTTPS(端口 443)通常需要额外配置。不要忘记重新启动 Apache。
请注意,编辑原始问题以包含其他详细信息可能会有所帮助,包括:
您正在使用什么操作系统。
您在端口上运行了哪些服务
26876
。6876
添加第二个虚拟主机时所采取的确切步骤。
您如何访问服务的示例(浏览器 URL、命令行字符串等)。
如果反转虚拟主机顺序会产生影响。