4

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

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

apache mod_js 配置:

JkShmSize   1000M

apache工人配置:

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 服务。

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

谢谢。

4

1 回答 1

5

您需要更多数据。

1)为 apache 设置服务器状态处理程序

2) 设置mod_jk 的状态工作者。有了这个,你就可以清楚地看到这是否是一个 apache 到 tomcat 的通信问题。

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

编辑:如果是 apache 到 tomcat 的问题([2]),请查看http://community.jboss.org/wiki/OptimalModjk12Configuration

于 2010-11-13T17:09:07.340 回答