我在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。
任何帮助或建议都将受到高度赞赏。
感谢。
答案 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