将 Apache 路由到 JBoss 生产服务器

将 Apache 路由到 JBoss 生产服务器

我们有一个 JBoss 生产环境,Java 应用程序正在其上运行。我们已配置 Apache 服务器 (DMZ) 以将流量路由到 JBoss 生产服务器并提高安全性。我们使用 Apache 的 mod_jk 模块路由到生产环境和 Apache 版本 2.2。几个月来它运行良好,但有一段时间我们遇到了此错误:

Bad Gateway
The proxy server received an invalid response from upstream server.

我在 Apache 上的 worker.property 是:

worker.list=ws    
worker.ws.port=8009
worker.ws.host=192.168.56.102
worker.ws.type=ajp13

我的 httpd.conf 文件为该工作者提供了以下虚拟主机:

<virtualhost *:443>
 ErrorLog "logs/dmz-error.log"
 CustomLog "logs/dmz-access.log" common

 JkMount /ws/ ws
 JkMount /* ws

 JkLogFile logs/mod_jk_prod.log
 JkLogLevel error
 JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
 JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
 JkRequestLogFormat "%w %V %T"

 RewriteEngine On
 RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
 RewriteRule .* - [F]
</virtualhost>

JBoss 运行在默认配置下。该系统运行的是旧版 Apache,配置和路由相同。但我们需要更换 Apache 机器,还被要求将 Apache 升级到 2.2 版本。我们面临这个问题已经将近 2 个月了。Mod_jk 日志显示以下错误:

[Tue Sep 23 11:52:01 2014][1392:1900] [error] ajp_get_reply::jk_ajp_common.c (2126): (ws) Tomcat is down or refused connection. No response has been sent to the client (yet)
[Tue Sep 23 11:52:01 2014][1392:4028] [error] ajp_get_reply::jk_ajp_common.c (2126): (ws) Tomcat is down or refused connection. No response has been sent to the client (yet)

我们找不到任何解决方案。当显示此错误时,刷新页面几次即可解决该问题,但有时我们无法访问我们的应用程序。我如何知道此错误的真正原因?请有人帮忙。

答案1

这可能是因为防火墙切断了 mod_jk 和 JBoss 之间的 ajp13 连接。不过,这不是防火墙的问题,而可能是 mod_jk 的 worker.properties 和 JBoss 中的配置默认值造成的。

在 中workers.properties添加:

worker.list=ws    
worker.ws.port=8009
worker.ws.host=192.168.56.102
worker.ws.type=ajp13
worker.ws.socket_keepalive=True
worker.ws.connection_pool_timeout=600

"socket_keepalive"将通过 ajp13 会话向 JBoss 发送 keepalive 消息。

"connection_pool_timeout"将在 10 分钟不活动后关闭 ajp13 会话。

在 server.xml 中的 JBoss ajp13 连接器部分(JBoss 4,5,6)

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
connectionTimeout="600000" /> 

JBoss 7使 Web 连接器 connectionTimeout 可配置配置jboss7 ajp连接器超时

相关内容