Tomcat Load Balancer с Apache с использованием Mod Proxy и Session Sticky

Настройте 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
    Like this post? Please share to your friends:
    Adblock
    detector
    map