jk经常死掉,看了一下mod_jk.log,大家帮忙看看。
公司网站这几天经常不能访问。ssh进去后,看了看mod_jk.log,发现这些错误:worker1 219.234.80.176 0.000353
jk_handler::mod_jk.c (1978): Service error=0 for worker=worker1
jk_open_socket::jk_connect.c (445): connect to 127.0.0.1:8009 failed with errno=111
ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:8009) with
(errno=111)
ajp_send_request::jk_ajp_common.c (1251): Error connecting to the backend server.
ajp_service::jk_ajp_common.c (1783): Sending request to tomcat failed,recoverable operation
attempt=1
jk_open_socket::jk_connect.c (445): connect to 127.0.0.1:8009 failed with errno=111
ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:8009) with
(errno=111)
ajp_send_request::jk_ajp_common.c (1251): Error connecting to the backend server.
ajp_service::jk_ajp_common.c (1783): Sending request to tomcat failed,recoverable operation
attempt=2
ajp_service::jk_ajp_common.c (1794): Error connecting to tomcat. Tomcat is probably not starte
d or is listening on the wrong port. worker=worker1 failed
worker1 mall.haohao.com 0.000414
jk_handler::mod_jk.c (1978): Service error=0 for worker=worker1
ajp_send_request::jk_ajp_common.c (1178): Socket 29 is not connected any more (errno=-1)
ajp_send_request::jk_ajp_common.c (1202): Error sending request. Will try another pooled conne
ction
ajp_send_request::jk_ajp_common.c (1224): All endpoints are disconnected or dead
ajp_service::jk_ajp_common.c (1783): Sending request to tomcat failed,recoverable operation
attempt=1
jk_open_socket::jk_connect.c (445): connect to 127.0.0.1:8009 failed with errno=111
ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:8009) with
(errno=111)
ajp_send_request::jk_ajp_common.c (1251): Error connecting to the backend server.
ajp_service::jk_ajp_common.c (1783): Sending request to tomcat failed,recoverable operation
attempt=2
ajp_service::jk_ajp_common.c (1794): Error connecting to tomcat. Tomcat is probably not starte
d or is listening on the wrong port. worker=worker1 failed
worker1 www.haohao.com 0.000321
jk_handler::mod_jk.c (1978): Service error=0 for worker=worker1
jk_open_socket::jk_connect.c (445): connect to 127.0.0.1:8009 failed with errno=111
ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:8009) with
(errno=111)
ajp_send_request::jk_ajp_common.c (1251): Error connecting to the backend server.
ajp_service::jk_ajp_common.c (1783): Sending request to tomcat failed,recoverable operation
attempt=1
jk_open_socket::jk_connect.c (445): connect to 127.0.0.1:8009 failed with errno=111
ajp_connect_to_endpoint::jk_ajp_common.c (889): Failed opening socket to (127.0.0.1:8009) with
(errno=111)
ajp_send_request::jk_ajp_common.c (1251): Error connecting to the backend server.
ajp_service::jk_ajp_common.c (1783): Sending request to tomcat failed,recoverable operation
attempt=2
ajp_service::jk_ajp_common.c (1794): Error connecting to tomcat. Tomcat is probably not starte
d or is listening on the wrong port. worker=worker1 failed
重启tomcat后,就可以了。
请大家帮忙看看,是什么原因? 先谢了。 我也想知道原因,顶上去 是tomcat宕了,应该查tomcat的日至。 楼上正确。
或者可以设置crontab,定期重启tomcat 真是tomcat的问题,那就晕了,我也有这个问题 今天我也刚遇到这种错误,不知道怎么解决。。
不知道是什么原因导致tomcat错误。。。。。。 首先检查Tomcat是否正常,
我以前测试过,mod_jk确定不稳定,并发连接多的话,就会有些连接是断掉的。
后面是用mod_proxy 发现同样的问题,如果先启动apache,后tomcat,mod_jk.log报错:
jk_handler::mod_jk.c (2476): Service error=-3 for worker=ajp1
init_jk::mod_jk.c (3018): mod_jk/1.2.27 initialized
init_jk::mod_jk.c (3018): mod_jk/1.2.27 initialized
ajp_send_request::jk_ajp_common.c (1456): (ajp1) all endpoints are disconnected, detec
ted by connect check (1), cping (0), send (0)
ajp_send_request::jk_ajp_common.c (1456): (ajp1) all endpoints are disconnected, detec
ted by connect check (1), cping (0), send (0)
ajp_send_request::jk_ajp_common.c (1456): (ajp1) all endpoints are disconnected, detec
ted by connect check (1), cping (0), send (0)
ajp_send_request::jk_ajp_common.c (1456): (ajp1) all endpoints are disconnected, detec
ted by connect check (1), cping (0), send (0)
ajp_send_request::jk_ajp_common.c (1456): (ajp1) all endpoints are disconnected, detec
ted by connect check (1), cping (0), send (0)
init_jk::mod_jk.c (3018): mod_jk/1.2.27 initialized
init_jk::mod_jk.c (3018): mod_jk/1.2.27 initialized
init_jk::mod_jk.c (3018): mod_jk/1.2.27 initialized
ajp_process_callback::jk_ajp_common.c (1748): Writing to client aborted or client netw
ork problems
ajp_service::jk_ajp_common.c (2407): (ajp1) sending request to tomcat failed (unrecove
rable), because of client write error (attempt=1)
jk_handler::mod_jk.c (2469): Aborting connection for worker=ajp1
ajp_process_callback::jk_ajp_common.c (1748): Writing to client aborted or client netw
ork problems
ajp_service::jk_ajp_common.c (2407): (ajp1) sending request to tomcat failed (unrecove
rable), because of client write error (attempt=1)
jk_handler::mod_jk.c (2469): Aborting connection for worker=ajp1
init_jk::mod_jk.c (3018): mod_jk/1.2.27 initialized
init_jk::mod_jk.c (3018): mod_jk/1.2.27 initialized
等一会就没有问题
使用apache 2.0.52
mod_jk 1.2.27 可以在workers.properties里设置相应的负载机器的recovery_options=3就可以了。
注解:
recovery_options属性说明了web server在检测到Tomcat失败后如何进行恢复工作。默认情况下,web server将转发请求给处于负载平衡模式中的另一个Tomcat。属性值为0,说明全部恢复;属性值为1,说明如果在Tomcat接到请求后出现失败状况,则不进行恢复;属性值为2,说明如果在Tomcat发送http头给客户端后出现失败状况,则不进行恢复;属性值为3,说明如果在Tomcat接到请求后出现失败状况或者在Tomcat发送http头给客户端后出现失败状况,则不进行恢复。此属性在jk 1.2.6版本被增加进来,以求避免Tomcat的死机和在支持ajp13的servlet引擎上发生的问题。此属性默认为全部恢复。
因在默认的情况下,JK检测tomcat的工作情况,所以浪费了很多资源,这个资源多到比tomcat正常工作所需的资源的1.6倍还多。如果不检测恢复,则效率高了,处理的请求数可以是原来的2.6倍多,而且tomcat还不死--没响应,反而使出错的数量比检测恢复之后出错的数量还少,性能还加强了,如果原来用这种的集群78台机器,有一阵就挂掉,改成这个配置只要30台机器,一般在同样的时间段内运行无反应或出错的情况比recovery_options使用默认值的少。
recovery_options的最新参考
http://tomcat.apache.org/connectors-doc/reference/workers.html 回复 9# zawecha1
虽然是楼主2006年的疑问,等到2010年还有您的回复。真心感谢你的帮忙。撇开问题不管,至少知道您是真心想帮助大家的。再次感谢。
页:
[1]