![如何配置mod_proxy_ajp为一个虚拟主机中的不同应用程序赋予不同的权限?](https://linux22.com/image/544008/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AEmod_proxy_ajp%E4%B8%BA%E4%B8%80%E4%B8%AA%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E4%B8%AD%E7%9A%84%E4%B8%8D%E5%90%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%B5%8B%E4%BA%88%E4%B8%8D%E5%90%8C%E7%9A%84%E6%9D%83%E9%99%90%EF%BC%9F.png)
在我的服务器上,我有两个 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>