如何配置mod_proxy_ajp为一个虚拟主机中的不同应用程序赋予不同的权限?

如何配置mod_proxy_ajp为一个虚拟主机中的不同应用程序赋予不同的权限?

在我的服务器上,我有两个 tomcat 应用程序:'' 和 '打开'。 这应用程序只能在本地网络使用192.168.0.0。 这打开应用程序应该适用于所有网络。

应用程序在 Tomcat 7.0.6 上运行,请求通过 mod_proxy_ajp 从 Apache 2.2.17 转发。所有这些都在 FreeBSD 8.2 服务器上运行。

Apache Web 服务器还负责处理静态的根网站。没有配置虚拟主机(只有一个主机)。

到目前为止我还没有找到任何示例配置,因此我只是尝试结合两个简单的配置:

ProxyRequests Off
ProxyPreserveHost On

<Proxy /hidden>
  Order Deny,Allow
  Deny from all
  Allow from 192.168
</Proxy>

<Proxy /open>
  Order Deny,Allow
  Allow from all
</Proxy>

ProxyPass /hidden ajp://localhost:8009/hidden/
ProxyPassReverse /hidden ajp://localhost:8009/hidden/

ProxyPass /open ajp://localhost:8009/open/
ProxyPassReverse /open ajp://localhost:8009/open/

通过此配置,两个应用程序都可从所有网络访问。我已经尝试过允许/拒绝设置。这个对我来说似乎是最合乎逻辑的。

有人知道我的配置有什么问题吗?

奥利

答案1

<Proxy>指令采用完整的 URL - 由于您的虚拟主机可能有多个 URL,因此该指令更适合您将其用作完整代理。

尝试将您的指令更改为<Location>块,以便按照您想要的方式应用权限:

<Location /hidden>
  Order Deny,Allow
  Deny from all
  Allow from 192.168
</Proxy>

<Location /open>
  Order Deny,Allow
  Allow from all
</Proxy>

相关内容