Назад | Перейти на главную страницу

Как настроить Tomcat на регистрацию запросов перед их выполнением?

У нас есть экземпляр Tomcat, работающий на сервере Ubuntu. Он запускает веб-службу, открытую для Интернета.

Иногда бывает внезапный всплеск трафика и он падает. В журналах доступа Tomcat нет ничего необычного. Я предполагаю, что это связано с тем, что некоторые запросы настолько «тяжелые», что они никогда не завершаются и, следовательно, не записываются в журналы доступа Tomcat.

Есть ли способ настроить Кот регистрировать входящие запросы до их выполнения? Каждый запрос должен регистрироваться в следующем формате

Дата, время, URL (с параметрами строки запроса), IP-адрес (клиента)

В запросе должна быть одна строка. Регистрируются только входящие запросы к портам 80 и 443.

AccessLogValve Tomcat имеет buffered опция конфигурации, которая по умолчанию true, что означает, что в случае сбоя Tomcat вы можете потерять журналы, хранящиеся в буфере. Видеть http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve.

Вы можете попробовать и установить buffered к false, что затем заставит клапан очищать журнал при каждом запросе, учитывая, что это, вероятно, повлияет на общую производительность.

Другой вариант - разместить, например, обратный прокси-сервер Apache перед Tomcat (с использованием mod_proxy, mod_jk, mod_ajp или mod_cluster) и ведение журнала запросов.