Java 阿帕奇&x2B;带有mod_jk的Tomcat-网站挂起

Java 阿帕奇&x2B;带有mod_jk的Tomcat-网站挂起,java,apache,tomcat,mod-jk,ajp,Java,Apache,Tomcat,Mod Jk,Ajp,我有一个在Linux redhad上安装了Apache1.3(支持SSL)+mod_jk+tomcat 5.5的网站。就在最近,我的网站出现了停机问题。每天有一次,我的网站挂在80端口。但如果我直接通过8080访问tomcat的回复和网站,效果会很好。80和8080端口都可以访问,但是apache和tomcat与mod_jk的连接中断。只有在我重新启动tomcat之后,事情才会恢复正常 我刚刚配置了apachemod_Jk来记录错误,所以我将在下一次挂起时查看是否有错误 apache mod_j

我有一个在Linux redhad上安装了Apache1.3(支持SSL)+mod_jk+tomcat 5.5的网站。就在最近,我的网站出现了停机问题。每天有一次,我的网站挂在80端口。但如果我直接通过8080访问tomcat的回复和网站,效果会很好。80和8080端口都可以访问,但是apache和tomcat与mod_jk的连接中断。只有在我重新启动tomcat之后,事情才会恢复正常

我刚刚配置了apachemod_Jk来记录错误,所以我将在下一次挂起时查看是否有错误

apache mod_js conf:

JkShmSize   1000M
apache workers配置文件:

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=127.0.0.1
worker.worker1.port=8009
worker.worker1.lbfactor=1
worker.worker1.socket_keepalive=1
worker.worker1.recycle_timeout=180
worker.worker1.sticky_session=False
我检查了tomcat上的web应用程序错误/警告日志,我有一些“内存不足”的java异常。应用程序错误会导致此问题吗?可能是网站过载问题还是内存泄漏?当前
dev/mapper/VolGroup00-LogVol00
只有4%的可用空间。这可能是问题的原因吗

我还得到了这个日志条目,它与服务器挂起时间匹配:

/var/log/messages:端口8009上可能存在SYN溢出。发送饼干

更新: 我刚刚得到了另一个,mod_jk日志给出了以下信息:


[Sun Nov 14 00:57:03 2010][错误]ajp_连接\u tcp_获取_消息::jk_ajp_common.c(961):无法接收来自tomcat的响应消息,网络问题或tomcat正在运行$
[Sun Nov 14 00:57:03 2010][错误]ajp_获取_回复::jk_ajp_common.c(1503):Tomcat已关闭或连接被拒绝。尚未向客户端发送响应(尚未)
[Sun Nov 14 00:57:08 2010][错误]ajp_连接\u tcp_获取_消息::jk_ajp_common.c(961):无法接收来自tomcat的响应消息,网络问题或tomcat正在运行$
[Sun Nov 14 00:57:08 2010][错误]ajp_获取_回复::jk_ajp_common.c(1503):Tomcat已关闭或连接被拒绝。尚未向客户端发送响应(尚未)
[Sun Nov 14 00:57:12 2010][错误]ajp_连接\u tcp_获取_消息::jk_ajp_common.c(961):无法接收来自tomcat的响应消息,网络问题或tomcat正在运行$
[Sun Nov 14 00:57:12 2010][错误]ajp_获取_回复::jk_ajp_common.c(1503):Tomcat已关闭或连接被拒绝。尚未向客户端发送响应(尚未)
[Sun Nov 14 00:57:12 2010][错误]ajp_服务::jk_ajp_common.c(1758):连接到tomcat时出错。Tomcat可能未启动或正在侦听错误的端口。w$
[Sun Nov 14 00:57:12 2010]worker1 mydomain.com 50.999342

看起来我的网站在8009端口关闭了。AJP 1.3连接器为8009端口上的apache mod_jk提供服务

任何帮助或建议都将不胜感激

谢谢。

您需要更多数据

1) 设置

2) 设置。这样,您就可以清楚地看到这是否是apache到tomcat的通信问题

3) 当tomcat再次挂起时,执行线程转储以查看Java处理当前的位置。也许它在等什么


编辑:如果是apache到tomcat的问题,
([2])
查看一下

非常感谢您的回复,我只是想检查一下,您能否建议,在生产服务器中启用安装程序1和2是否安全?对第3项发表评论。Tomcat没有挂起,网站仍然可以通过8080端口访问。Apache80端口也可用于其他实例。您是对的。看看我编辑的答案中的链接。我曾经用这种方式解决过我的问题。感谢cherouvim的链接,我会马上检查。顺便问一下,你能给我一些关于第3项的提示吗,如何检查tomcat的线程转储?你的8009端口对公众开放吗?你能建议如何检查吗?我试图进入。我没有收到http错误,只是一个空白页。这是否意味着8009对公众开放,有人对其进行洪水泛滥或DDOS攻击?