прокси-сервер apache для tomcat сохраняет путаницу в живых

У меня есть сервер apache 2.2 перед сервером tomcat 6. используя mod_proxy_ajp на apache для прокси-запросов к tomcat. довольно стандартная установка.

Если мне нужно отключить поддерживающие соединения для браузеров, как мне это сделать?

Мне нужно отключить HTTP-запросы keep-alive, потому что я подозреваю, что у некоторых из моих пользователей есть брандмауэры, которые могут сбрасывать неактивное соединение keep-alive, что случайным образом вызывает проблемы.

Как в apache, так и в tomcat есть различные настройки для сохранения активности.

httpd.conf имеет "KeepAlive Off" (что, похоже, не имеет значения в моем случае)

также в httpd.conf, где вы устанавливаете ProxyPass, у вас может быть параметр «keepalive», но это должно помочь только в том случае, если между моим apache и tomcat есть прокси / брандмауэры, которых нет в моем случае и не является проблемой .

Сам Tomcat, http-коннектор имеет "keepAliveTimeout" и "maxKeepAliveRequests", но это только для http-коннекторов.

Соединитель tomcat ajp также имеет "keepAliveTimeout", но он предназначен для запросов ajp, поступающих от apache, не уверен, что он должен / перетекает на настоящий HTTP-запрос от браузера к apache.

В довершение ко всему, существует также различие между HTTP1.0 и HTTP1.1.

Так что это сбивает с толку .... может кто-нибудь объяснить?


person Patrick    schedule 24.11.2009    source источник
comment
Интересно, почему вы хотите отключить функцию сохранения активности?   -  person Stephane    schedule 18.02.2016


Ответы (1)


Есть (как минимум) четыре «keep-alive».

  1. Поддержание активности уровня HTTP между клиентским браузером и Apache. (Разрешает несколько клиентских запросов в соединении HTTP / TCP. Директива KeepAlive для настройки.)

  2. Поддержание активности уровня TCP между клиентским браузером и Apache. (Чтобы избежать закрытия соединения брандмауэрами, периодически отправляйте пустой пакет (около 2 часов по умолчанию в Linux). Я не знаю, как настроить в Apache.)

  3. Поддержание активности уровня AJP между Apache и Tomcat. (Включает несколько запросов Apache в соединении AJP / TCP. Параметры «max» и «smax» для «ProxyPass» настраиваются.)

  4. Поддержание активности уровня TCP между Apache и Tomcat. (То же, что и 2, но для межсетевого экрана между Apache и Tomcat. Параметр «keepalive» для директивы «ProxyPass» для настройки.)

Таким образом, ваша конфигурация («KeepAlive off») может правильно работать для брандмауэров в клиенте и Apache. Используйте «% X» для директивы «LogFormat», чтобы проверить, отключен ли keep-alive (типа 1 выше).

Кстати, я думаю, что закрытие соединения брандмауэрами не вызывает серьезных проблем, когда KeepAliveTimeout не так велик. Если у вас нет проблем (кроме предупреждающих сообщений), на мой взгляд, вы можете оставить все как есть.

person habe    schedule 24.11.2009