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.
Tartalomjegyzék
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.
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.
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.
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?