我运行 Webmin,并希望通过两个 URL 访问它,这两个 URL 均使用 apache 中的 proxypass

我运行 Webmin,并希望通过两个 URL 访问它,这两个 URL 均使用 apache 中的 proxypass

这就是我想做的事情:

NameVirtualHost *
<VirtualHost *>
        ServerName testsite.org
        ServerAdmin [email protected]
        DocumentRoot /var/www/
</VirtualHost>

<VirtualHost *>
        ServerName panel.testsite.org
        ProxyPass / http://panel.testsite.org:10000/
        ProxyPassReverse / http://panel.testsite.org:10000/
</VirtualHost>

<VirtualHost 12.34.56.78>
        ServerName newsite.com
        ServerAdmin [email protected]
        DocumentRoot /var/newsite/
</VirtualHost>

<VirtualHost 12.34.56.78>
        ServerName panel.newsite.com
        ProxyPass / http://panel.newsite.com:10000/
        ProxyPassReverse / http://panel.newsite.com:10000/
</VirtualHost>

问题是它不会接受 IP 为 12.34.56.78 的第二个虚拟主机,因为它说已经存在一个。panel.newsite.com 和 newsite.com 具有相同的 IP...所以我不确定如何才能使只有 URL“panel.newsite.com”通过代理传递到端口 10000,而 newsite.com 上的其他 URL 则不会

答案1

虚拟主机并不适用于同一 IP 地址的多个实例。当您的“NameVirtualHost”已经是 * 时,您不需要使用特定的 IP。

尝试:

<VirtualHost *>
        ServerName newsite.com
        ServerAdmin [email protected]
        DocumentRoot /var/newsite/
</VirtualHost>

<VirtualHost *>
        ServerName panel.newsite.com
        ProxyPass / http://panel.newsite.com:10000/
        ProxyPassReverse / http://panel.newsite.com:10000/
</VirtualHost>

如果虚拟主机指令不是唯一的(或者是通配符),那么配置将默认为第一个匹配,这就是为什么它不会超过第一个,因为 IP 覆盖了 ServerName。

相关内容