在 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
.虽然不是直接回答你的问题,但我们曾经通过以下方式做 Apache2<->Tomcat5 代理。像魅力一样工作。