Apache-2.2

AJP代理配置中應該配置什麼?

  • December 24, 2016

我的產品中有 Apache HTTPD 伺服器,我需要將 AJP 代理添加到某些特定應用程序。

Tomcat AJP 埠是 8009,Tomcat HTTP 埠是 8080(SSL 終止在 Apache 中)。這是我需要配置的 AJP 代理。

<Directory /app>
   AuthType None
   Allow from all
   Satisfy any
   AllowOverride None
   Options None FollowSymLinks
</Directory>

<Proxy http://localhost:8080/app >
   AuthType None
   Allow from all
   Order Deny,Allow
   Satisfy any
   Options None FollowSymLinks
</Proxy>
ProxyPass /app ajp://localhost:8009/app
<Location /app>
       ProxyPassReverse ajp://localhost:8009/app
</Location>

問題:應該配置<Proxy … >什麼? <Proxy http://localhost:8080/app > 或者 <Proxy ajp://localhost:8009/app >

添加 了說明。整個配置包含根配置(見下文)。

我只需要將 AJP 代理添加到某些特定的應用程序。

<Directory />
   Deny from all
   Allow from localhost
   Order Deny,Allow
   AuthType Basic
   Require valid-user
   AllowOverride None
   Satisfy any
   Options None FollowSymLinks
</Directory>


<Proxy *>
   Deny from all
   Order Deny,Allow
   AuthType Basic
   Require valid-user
   Satisfy any
   Options None FollowSymLinks
</Proxy>

好的,您對 Apache 配置有幾個需要糾正的誤解。

  1. <Directory>塊是指絕對文件系統路徑。不是 URI 路徑或相對於文件根目錄的路徑。正如 David Hutchinson 所提到的,在代理時,您應該改用<Location>塊。
  2. <Proxy>塊(幾乎)專門用於配置正向代理,而不是反向代理。刪除這些塊,您不需要它們。再次,使用<Location>塊。
  3. 不要使用ProxyPassProxyPassReverse在裡面<Location>。雖然它是有效的,但它會使事情複雜化。只需使用這些指令的兩個參數版本。此外,除非您有理由不這樣做,否則請在這兩個指令中使用斜杠。

位置塊的順序可能需要顛倒(我不記得正確的順序),但從以下內容開始:

ProxyPass /app/ ajp://localhost:8009/app/
ProxyPassReverse /app ajp://localhost:8009/app/

<Location />
 Order Allow,Deny
 Allow from localhost
 AuthType Basic
 Require valid-user
</Location>

<Location /app/>
 Allow from all
</Directory>

我已經刪除了預設的指令。

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