Tomcat Load Balancer med Apache ved hjelp av Mod Proxy og Session Sticky

Konfigurer Tomcat med Apache ved å bruke Proxy Module og Sticky Session

Å konfigurere Tomcat Load Balancer med Apache webserver ved å bruke Mod Proxy er ganske enkelt.

Det er enkelt når du følger sekvensen, og alt går bra. Jeg har listet opp følgende trinn-for-trinn for hvordan du konfigurerer Apache med Tomcat for å konfigurere Load Balancer ved hjelp av Mod Proxy.

Å ha lastbalansert anbefales alltid i et produksjonsmiljø for bedre tilgjengelighet.

Konfigurasjon av Apache Web Server

  • Aktiver proxy_module, proxy_balancer_module og proxy_http_module i httpd.conf på Apache-nettserveren
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

Legg til proxy-pass sammen med balanseringsnavn for applikasjonskontekstrot.

  Slik tar du alltid skarpe bilder

I dette eksemplet har jeg en proxy-bane som eksempler og balansernavn som mycluster.

Veldig viktig å inkludere stickysession, da det å ikke ha dette alternativet vil distribuere den samme forespørselen til flere Tomcat-servere, og du vil ha problemer med sesjonsutløp i en applikasjon.

<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>

Som du kan se i konfigurasjonen ovenfor, har jeg lagt til en rute i BalancerMember slik at ruteverdien kan legges til økt-ID.

La oss nå konfigurere Apache til å skrive ut JSESSIONID i tilgangslogger.

  • Legg til følgende i LogFormat-direktivet
%{JSESSIONID}C

Eks:

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

Tomcat-konfigurasjon

Du må konfigurere tomcat-forekomster med samme rute-ID som du gjorde i BalancerMember ovenfor.

  • Legg til jvmRoute-parameteren i server.xml av Tomcat. Dette må legges til i motornavnet.
  Hvordan beregne prosentvis endring med pivottabeller i Excel

Tomcat-forekomst konfigurert med 8080-port

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

Tomcat-forekomst konfigurert med 8090-port

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

Bekreftelse

Generer litt belastning på applikasjonen og sjekk tilgangsloggen til apache-serveren for å sikre at forespørselen din blir rutet til bare én tomcat-forekomst.

Du vil også legge merke til at økt-ID-en din er lagt til ruten som vist i eksemplet nedenfor.

Eks:

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"

Jeg håper dette hjelper deg med å konfigurere Tomcat Load Balancer med Apache Mod Proxy og Session Sticky.

  Slik aktiverer du foreldrekontroll på iPad

Hvis du er interessert i å lære om Tomcat-administrasjon, sjekk dette nettkurs.

Likte du å lese artikkelen? Hva med å dele med verden?