Tomcat Load Balancer cu Apache folosind Mod Proxy și Session Sticky

Configurați Tomcat cu Apache utilizând Modulul Proxy și Sticky Session

Configurarea Tomcat Load Balancer cu serverul web Apache folosind Mod Proxy este destul de ușoară.

Este ușor când urmărești secvența și totul merge bine. Am enumerat pas cu pas cum să configurați Apache cu Tomcat pentru a configura Load Balancer folosind Mod Proxy.

Echilibrarea sarcinii este întotdeauna recomandată într-un mediu de producție pentru o mai bună disponibilitate.

Configurarea serverului web Apache

  • Activați proxy_module, proxy_balancer_module și proxy_http_module în httpd.conf al serverului web 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

Adăugați trecerea proxy împreună cu numele echilibratorului pentru rădăcina contextului aplicației.

În acest exemplu, am o cale proxy ca exemple și numele de echilibrare ca mycluster.

Foarte important să includeți stickysession, deoarece nu aveți această opțiune va distribui aceeași cerere către mai multe servere Tomcat și veți avea probleme de expirare a sesiunii într-o aplicație.

<IfModule proxy_module>
ProxyRequests Off
ProxyPass /examples balancer://mycluster stickysession=JSESSIONID
ProxyPassReverse /examples balancer://mycluster stickysession=JSESSIONID
<Proxy balancer://mycluster>
BalancerMember http://localhost:8080/examples route=server1
BalancerMember http://localhost:8090/examples route=server2
</Proxy>
</IfModule>

După cum puteți vedea în configurația de mai sus, am adăugat o rută în BalancerMember, astfel încât valoarea rutei să poată fi atașată la ID-ul sesiunii.

Acum, să configuram Apache să imprime JSESSIONID în jurnalele de acces.

  • Adăugați următoarele în directiva LogFormat
%{JSESSIONID}C

Ex:

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""%{JSESSIONID}C"" combined
  • Reporniți Apache Web Server

Configurare Tomcat

Trebuie să configurați instanțe Tomcat cu același ID de rută ca și în BalancerMember de mai sus.

  • Adăugați parametrul jvmRoute în server.xml al Tomcat. Acesta trebuie adăugat în eticheta cu numele motorului.
  Cele 3 tipuri diferite de aplicații false din Magazinul Google Play

Instanță Tomcat configurată cu portul 8080

<Engine name="Catalina" defaultHost="localhost" jvmRoute="server1">

Instanță Tomcat configurată cu portul 8090

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="server2">

Verificare

Generați o încărcare pe aplicație și verificați jurnalul de acces al serverului Apache pentru a vă asigura că cererea dvs. este direcționată către o singură instanță Tomcat.

Veți observa, de asemenea, că ID-ul dvs. de sesiune este atașat traseului, așa cum se arată în exemplul de mai jos.

Ex:

127.0.0.1 - - [18/Sep/2013:10:02:02 +0800] "POST /examples/servlets/servlet/RequestParamExample HTTP/1.1" 200 662 "http://localhost/examples/servlets/servlet/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://localhost/examples/servlets/" "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://localhost/examples/servlets/" "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://localhost/examples/servlets/" "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://localhost/examples/servlets/servlet/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://localhost/examples/servlets/servlet/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=bar HTTP/1.1" 200 1174 "http://localhost/examples/servlets/servlet/SessionExample?dataname=fda&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://localhost/examples/servlets/" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"

Sper că acest lucru vă va ajuta să configurați Tomcat Load Balancer cu Apache Mod Proxy și Session Sticky.

Dacă doriți să aflați despre administrarea Tomcat, verificați acest lucru curs online.

Ți-a plăcut să citești articolul? Ce zici de împărtășirea cu lumea?