apache 背后的两个 proxypass 应用程序

apache 背后的两个 proxypass 应用程序

我正在运行两个 Web 应用程序,一个基于 tornado,另一个基于 cherrypy,它们运行在 openSUSE 服务器上的 apache 后面。它们都在指向同一 IP 的不同域上运行。这两个应用程序在同一台服务器上运行,并在 127.0.0.1 和不同端口上提供服务 - cherrypy 应用程序使用 8090,tornado 应用程序使用 8091。Apache 已设置为使用 ProxyPass 为应用程序提供服务,并具有两个虚拟主机,例如:

conf1.conf

<VirtualHost domain1.com:80>
        ServerName domain1.com
        ProxyPass / http://127.0.0.1:8090/
        ProxyPassReverse / http://127.0.0.1:8090/

        <Location "/">
                Require all granted
        </Location>
</VirtualHost>

和 conf2.conf

<VirtualHost domain2.com:80>
        ServerName domain2.com
        ProxyPass / http://127.0.0.1:8091/
        ProxyPassReverse / http://127.0.0.1:8091/

        <Location "/">
                Require all granted
        </Location>
</VirtualHost>

但是当我尝试访问其中一个时,我得到了 403 禁止访问。似乎只有将 VirtualHost 指令更改为 *:80 并删除另一个时,才能使其中一个正常工作。如何才能使两者同时运行?

答案1

虽然VirtualHost指令支持在 ie 中使用<VirtualHost example.com:80>不推荐的主机名。

使用特定的 IP 地址或通配符*来匹配任何 IP 地址。

除非您有特殊原因,否则我建议<VirtualHost *:80> 在两个配置文件中都使用。

相关内容