Apache-2.2
Apache 2.2.3 代理到 Tomcat 5.5 上的 mod_proxy 返回錯誤 502 Bad Gateway
在 Apache 2.2.3 代理到 Tomcat 5.5 上使用 mod_proxy 時出現 502 bad gateway 錯誤。
當直接通過 Tomcat(而不是通過 mod_proxy)使用時,它可以正常工作,所以我認為問題出在 Apache 端。當請求花費的時間比正常時間長時,就會出現問題,但我還沒有看到任何模式。有時兩秒太長,有時七秒。
Tomcat 用於託管基於 Groovy/Grails 的應用程序。
Apache vhost 配置具有以下相關條目:
ProxyRequests Off ProxyTimeout 1800 <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://DOMAIN:8180/ ProxyPassReverse http://DOMAIN:8180/ SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 </Location> UseCanonicalName off HostNameLookups off
請注意,我添加了 ProxyTimeout 以嘗試解決問題(過去曾在類似情況下有所幫助),但沒有幫助。
這兩行是舊的,沒有它們情況會更糟 - 幾乎每個請求都會出現錯誤 502。
SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1
更新
您是否嘗試過監控 Tomcat 中的繁忙執行緒數?也許 Apache 沒有正確發布它們。
第一次嘗試,不工作
反向名稱查找
DOMAIN
?我將無恥地插入我的堆棧溢出答案。請注意,它允許您使用 localhost 而不是
DOMAIN
.<VirtualHost *:80> ServerName public.server.name ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8180/ ProxyPassReverse / http://localhost:8180/ </VirtualHost>