Apache + Tomcat与mod_jk - 网站挂起

时间:2010-11-13 17:00:35

标签: java apache tomcat mod-jk ajp

我在Linux redhad设置上有一个带有apache 1.3(启用SSL)+ mod_jk + tomcat 5.5的网站。就在最近,我的网站开始出现停机问题。每天一次,我的网站挂在端口80上。但如果我通过8080 tomcat直接访问响应和网站工作正常。 80和8080端口都可以访问,但与mod_jk的apache和tomcat连接断开。只有在我重新启动tomcat之后,事情才恢复正常。

我刚刚配置了apache mod_Jk来记录错误,所以我会看到下次挂起时是否会有任何错误。

apache mod_js conf:

JkShmSize   1000M

apache workers conf:

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泛洪。发送cookie

更新 我刚下来了,mod_jk日志给出了这个:

[Sun Nov 14 00:57:03 2010] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (961): Can't receive the response message from tomcat, network problems or tomcat is$ [Sun Nov 14 00:57:03 2010] [error] ajp_get_reply::jk_ajp_common.c (1503): Tomcat is down or refused connection. No response has been sent to the client (yet) [Sun Nov 14 00:57:08 2010] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (961): Can't receive the response message from tomcat, network problems or tomcat is$ [Sun Nov 14 00:57:08 2010] [error] ajp_get_reply::jk_ajp_common.c (1503): Tomcat is down or refused connection. No response has been sent to the client (yet) [Sun Nov 14 00:57:12 2010] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (961): Can't receive the response message from tomcat, network problems or tomcat is$ [Sun Nov 14 00:57:12 2010] [error] ajp_get_reply::jk_ajp_common.c (1503): Tomcat is down or refused connection. No response has been sent to the client (yet) [Sun Nov 14 00:57:12 2010] [error] ajp_service::jk_ajp_common.c (1758): Error connecting to tomcat. Tomcat is probably not started or is listening on the wrong port. w$ [Sun Nov 14 00:57:12 2010] worker1 mydomain.com 50.999342

我的网站看起来在8009端口上。 AJP 1.3连接器在8009端口上提供apache mod_jk。

任何帮助或建议都将受到高度赞赏。

感谢。

1 个答案:

答案 0 :(得分:5)

您需要更多数据。

1)设置server-status handler for apache

2)设置the status worker of mod_jk。有了这个,你就可以清楚地看到这是否是一个对tomcat通信问题的apache。

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

修改:如果是tomcat问题apache问题([2])请查看http://community.jboss.org/wiki/OptimalModjk12Configuration