Apache-2.2
AJP代理配置中應該配置什麼?
我的產品中有 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 配置有幾個需要糾正的誤解。
<Directory>
塊是指絕對文件系統路徑。不是 URI 路徑或相對於文件根目錄的路徑。正如 David Hutchinson 所提到的,在代理時,您應該改用<Location>
塊。<Proxy>
塊(幾乎)專門用於配置正向代理,而不是反向代理。刪除這些塊,您不需要它們。再次,使用<Location>
塊。- 不要使用
ProxyPass
或ProxyPassReverse
在裡面<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>
我已經刪除了預設的指令。