Apache + Tomcat с mod_jk - веб-сайт зависает

У меня есть веб-сайт с apache 1.3 (включен SSL) + mod_jk + tomcat 5.5 в настройке Linux Redhad. Совсем недавно у меня начались проблемы с простоями моего веб-сайта. Раз в день мой веб-сайт зависает на порте 80. Но если я обращаюсь напрямую через ответы 8080 tomcat, веб-сайт работает нормально. Оба порта 80 и 8080 доступны, но соединение apache и tomcat с mod_jk прервано. Только после того, как я перезапущу tomcat, все вернется в норму.

Я только что настроил apache mod_Jk для регистрации ошибок, поэтому я посмотрю, будет ли ошибка при следующем зависании.

apache mod_js conf:

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, у меня есть некоторые исключения Java "нехватки памяти". Могут ли ошибки приложения вызвать эту проблему? Может быть проблема с перегрузкой сайта или утечкой памяти? В настоящее время dev/mapper/VolGroup00-LogVol00 имеет только 4% свободного места. Может ли это быть причиной проблемы?

Я также получил эту запись в журнале, она соответствует времени зависания сервера:

/ var / log / messages: возможен SYN-флуд на порт 8009. Отправка файлов 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 обслуживает apache mod_jk на порту 8009.

Любая помощь или совет будут высоко оценены.

Спасибо.


person taras    schedule 13.11.2010    source источник
comment
Ваш порт 8009 открыт для всех?   -  person cherouvim    schedule 13.11.2010
comment
Подскажите, как это проверить? Я попытался получить доступ к mydomain.com:8009. Я получаю не http-ошибку, а просто пустую страницу. Означает ли это, что 8009 открыт для публики, и кто-то его заливал или выполнял DDOS-атаки?   -  person taras    schedule 13.11.2010


Ответы (1)


Вам нужно больше данных.

1) настройте обработчик состояния сервера для apache

2) настройте рабочий статус mod_jk. Благодаря этому вы сможете четко увидеть, является ли это проблемой связи между Apache и Tomcat.

3) когда tomcat снова зависает, сделайте дамп потока, чтобы увидеть, где сейчас находится обработка Java. Может, чего-то ждет.

Изменить: если это проблема apache to tomcat ([2]), посмотрите http://community.jboss.org/wiki/OptimalModjk12Configuration

person cherouvim    schedule 13.11.2010
comment
Большое спасибо за ваш ответ, просто хотел проверить, можете ли вы посоветовать, безопасно ли включать настройку 1 и 2 на рабочем сервере? - person taras; 13.11.2010
comment
Прокомментируйте пункт №3. Tomcat не зависает, сайт по-прежнему доступен через порт 8080. Порт apache 80 также доступен для других экземпляров. - person taras; 13.11.2010
comment
Ты прав. Взгляните на ссылку в моем отредактированном ответе. Однажды я так решил свою проблему. - person cherouvim; 13.11.2010
comment
Спасибо за ссылку cherouvim, сразу проверю. Между прочим, не могли бы вы дать мне какой-нибудь намек по пункту № 3, как проверить дамп потока Tomcat? - person taras; 13.11.2010