Tomcat Load Balancer Apache-val Mod Proxy és Session Sticky használatával

A Tomcat konfigurálása az Apache segítségével a Proxy modul és a Sticky Session használatával

A Tomcat Load Balancer konfigurálása Apache webszerverrel a Mod Proxy használatával meglehetősen egyszerű.

Könnyű, ha követi a sorrendet, és minden jól megy. Az alábbiakban felsoroltam lépésről lépésre, hogyan kell konfigurálni az Apache-t a Tomcat-tal a Load Balancer konfigurálásához a Mod Proxy használatával.

Termelési környezetben mindig javasolt a terheléselosztás a jobb elérhetőség érdekében.

Apache webszerver konfigurációja

  • A proxy_module, proxy_balancer_module és proxy_http_module engedélyezése az Apache webszerver httpd.conf fájljában
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

Adja hozzá a proxy pass-t a kiegyenlítő nevével együtt az alkalmazáskörnyezet-gyökérhez.

Ebben a példában a proxy elérési útja van példaként, és a kiegyenlítő neve a mycluster.

Nagyon fontos a stickysession használata, mivel ennek hiányában ugyanazt a kérést több Tomcat-kiszolgálóra küldi el, és munkamenet-lejárati problémái lesznek egy alkalmazásban.

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

Amint a fenti konfigurációban látható, hozzáadtam egy útvonalat a BalancerMemberhez, így az útvonal értéke hozzáfűzhető a munkamenet azonosítójához.

  A Flint gyors közösségimédia-megosztást és bejegyzésütemezést hoz a Chrome-ba

Most állítsuk be az Apache-t, hogy a JSESSIONID-t kinyomtassa a hozzáférési naplókban.

  • Adja hozzá a következőket a LogFormat direktívához
%{JSESSIONID}C

Volt:

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""%{JSESSIONID}C"" combined
  • Indítsa újra az Apache webszervert

Tomcat konfiguráció

A tomcat példányokat ugyanazzal az útvonalazonosítóval kell konfigurálnia, mint a fenti BalancerMemberben.

  • Adja hozzá a jvmRoute paramétert a Tomcat server.xml fájljához. Ezt hozzá kell adni a motornév címkéhez.

A Tomcat példány 8080-as porttal van konfigurálva

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

A Tomcat példány 8090-es porttal van konfigurálva

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

Igazolás

Gyártson némi terhelést az alkalmazáson, és ellenőrizze az apache-kiszolgáló hozzáférési naplóját, hogy megbizonyosodjon arról, hogy a kérelmet csak egy tomcat-példányhoz irányítják.

  Mi az a DHCP, és hogyan működik a Dynamic Host Configuration Protocol

Azt is észre fogja venni, hogy a munkamenet azonosítója hozzá van fűzve az útvonalhoz, ahogy az alábbi példában látható.

Volt:

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"

Remélem, hogy ez segít a Tomcat Load Balancer konfigurálásában az Apache Mod Proxyval és a Session Sticky-vel.

  11 legjobb adatmentési megoldás közepes és nagyvállalati vállalkozások számára

Ha szeretne többet megtudni a Tomcat adminisztrációjáról, ellenőrizze ezt online tanfolyam.

Élvezettel olvasta a cikket? Mit szólnál a világgal való megosztáshoz?