Tomcat

如何配置 mod_proxy_ajp 為一個虛擬主機中的不同應用程序賦予不同的權限?

  • March 25, 2011

在我的伺服器上,我有兩個 tomcat 應用程序:“隱藏”和“打開”。隱藏的應用程序應僅可用於本地網路192.168.0.0開放的應用程序應該適用於所有網路。

應用程序在 Tomcat 7.0.6 上執行,請求從 Apache 2.2.17 轉發,帶有 mod_proxy_ajp。所有這些都在 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/

使用這種配置,兩個應用程序都可以從所有網路訪問。我已經玩過允許/拒絕設置。這對我來說似乎是最合乎邏輯的。

有人知道我的配置有什麼問題嗎?

它是

<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>

引用自:https://serverfault.com/questions/251782