Настройте Tomcat с помощью Apache, используя Модуль Proxy и Sticky Session

Настроить Tomcat Load Balancer с веб-сервером Apache с помощью Mod Proxy довольно просто.

Это легко, когда вы следуете последовательности, и все идет хорошо. Ниже я перечислю пошаговые инструкции по настройке Apache с Tomcat для настройки балансировки нагрузки с использованием Mod Proxy..

Балансировка нагрузки всегда рекомендуется в производственной среде для лучшей доступности.

Конфигурация веб-сервера Apache

  • Включите proxy_module, proxy_balancer_module и proxy_http_module в httpd.conf веб-сервера Apache

LoadModule proxy_module modules / mod_proxy.so
LoadModule proxy_balancer_module modules / mod_proxy_balancer.so
LoadModule proxy_http_module modules / mod_proxy_http.so

Добавьте проход прокси вместе с именем балансировщика для корневого контекста приложения.

В этом примере у меня есть путь прокси в качестве примеров и имя балансировщика как mycluster.

Очень важно включить stickysession поскольку отсутствие этой опции будет распространять один и тот же запрос на несколько серверов Tomcat, и у вас будут проблемы с истечением срока действия сессии в приложении.

ProxyRequests Off
ProxyPass / examples балансировщик: // mycluster stickysession = JSESSIONID
ProxyPassReverse / examples балансировщик: // mycluster stickysession = JSESSIONID

BalancerMember http: // localhost: 8080 / examples route = server1
BalancerMember http: // localhost: 8090 / examples route = server2

Как вы можете видеть в приведенной выше конфигурации, я добавил маршрут в BalancerMember, чтобы значение маршрута можно было добавить к идентификатору сеанса..

Теперь давайте настроим Apache для печати JSESSIONID в журналах доступа.

  • Добавьте следующее в директиву LogFormat

% {JSESSIONID} С

Пример:

LogFormat "% h% l% u% t "%р" %>s% b "% {Referer} я" "% {User-Agent} я""% {JSESSIONID} С"" комбинированный

  • Перезапустите веб-сервер Apache

Конфигурация Tomcat

Вы должны настроить экземпляры tomcat с тем же идентификатором маршрута, что и в BalancerMember над.

  • Добавьте параметр jvmRoute в server.xml Tomcat. Это должно быть добавлено в тег имени двигателя.

Экземпляр Tomcat настроен с 8080 порт

Экземпляр Tomcat настроен с 8090 порт

  • Перезагрузите сервер Tomcat

верификация

Создайте некоторую нагрузку на приложение и проверьте журнал доступа сервера Apache, чтобы убедиться, что ваш запрос направляется только на один экземпляр tomcat..

Вы также заметите, что ваш идентификатор сессии добавляется к маршруту, как показано в примере ниже.

Пример:

127.0.0.1 – – [18 / Sep / 2013: 10: 02: 02 +0800] "POST / examples / servlets / servlet / RequestParamExample HTTP / 1.1" 200 662 "HTTP: // локальный / примеры / сервлеты / сервлет / RequestParamExample" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 – – [18 / Sep / 2013: 10: 02: 06 +0800] "GET / examples / servlets / servlet / RequestInfoExample HTTP / 1.1" 200 693 "HTTP: // локальный / примеры / сервлеты /" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 – – [18 / Sep / 2013: 10: 02: 17 +0800] "GET /examples/servlets/reqinfo.html HTTP / 1.1" 200 3607 "HTTP: // локальный / примеры / сервлеты /" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 – – [18 / Sep / 2013: 10: 02: 20 +0800] "GET / examples / servlets / servlet / SessionExample HTTP / 1.1" 200 1124 "HTTP: // локальный / примеры / сервлеты /" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 – – [18 / Sep / 2013: 10: 02: 26 +0800] "POST / examples / servlets / servlet / SessionExample HTTP / 1.1" 200 1142 "HTTP: // локальный / примеры / сервлеты / сервлет / SessionExample" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 – – [18 / Sep / 2013: 10: 02: 28 +0800] "GET / examples / servlets / servlet / SessionExample? Dataname = fda&datavalue = fadaf HTTP / 1.1" 200 1159 "HTTP: // локальный / примеры / сервлеты / сервлет / SessionExample" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B4EC1D73CF8C7482B7D46.server2"
127.0.0.1 – – [18 / Sep / 2013: 10: 02: 32 +0800] "GET / examples / servlets / servlet / SessionExample? Dataname = foo&datavalue = бар HTTP / 1.1" 200 1174 "HTTP: // локальный / примеры / сервлеты / сервлет / SessionExample dataname = УАЯ&DataValue = fadaf" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 – – [18 / Sep / 2013: 10: 02: 36 +0800] "GET / examples / servlets / servlet / RequestHeaderExample HTTP / 1.1" 200 1423 "HTTP: // локальный / примеры / сервлеты /" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"

Я надеюсь, что это поможет вам настроить Tomcat Load Balancer с Apache Mod Proxy и Session Sticky..

Если вам интересно узнать об администрировании Tomcat, проверьте это онлайн курс.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me