Konfigurieren Sie Tomcat mit Apache mithilfe von Proxy-Modul und Sticky Session
Das Konfigurieren von Tomcat Load Balancer mit dem Apache-Webserver mithilfe von Mod Proxy ist recht einfach.
Es ist einfach, wenn Sie der Sequenz folgen, und alles läuft gut. Ich habe im Folgenden Schritt für Schritt aufgeführt, wie Sie Apache mit Tomcat konfigurieren, um Load Balancer mithilfe von Mod Proxy zu konfigurieren.
Für eine bessere Verfügbarkeit wird in einer Produktionsumgebung immer ein Lastausgleich empfohlen.
Apache Web Server Configuration
- Ermöglichen
proxy_module
,proxy_balancer_module
undproxy_http_module
in der httpd.conf des Apache-Webservers
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
Fügen Sie den Proxy-Pass zusammen mit dem Balancer-Namen für den Anwendungskontextstamm hinzu.
In diesem Beispiel habe ich einen Proxy-Pfad als Beispiele und einen Balancer-Namen als meincluster.
Sehr wichtig einzuschließen Stickysession Wenn Sie diese Option nicht haben, wird dieselbe Anforderung an mehrere Tomcat-Server verteilt, und in einer Anwendung treten Probleme mit dem Ablauf der Sitzung auf.
ProxyRequests Off ProxyPass / examples balancer: // mycluster stickysession = JSESSIONID ProxyPassReverse / examples balancer: // mycluster stickysession = JSESSIONID BalancerMember http: // localhost: 8080 / examples route = server1 BalancerMember http: // localhost: 8090 / examples route = server2
Wie Sie in der obigen Konfiguration sehen können, habe ich in BalancerMember eine Route hinzugefügt, damit der Routenwert an die Sitzungs-ID angehängt werden kann.
Jetzt konfigurieren wir Apache so, dass JSESSIONID in Zugriffsprotokollen gedruckt wird.
- Fügen Sie Folgendes in die LogFormat-Direktive ein
% {JSESSIONID} C.
Ex:
LogFormat "% h% l% u% t"% r "%> s% b"% {Referer} i ""% {User-Agent} i ""% {JSESSIONID} C "" kombiniert
- Starten Sie Apache Web Server
Tomcat Configuration
Sie müssen Tomcat-Instanzen mit derselben Routen-ID wie in konfigurieren Balancer Member zu teilen.
- Hinzufügen
jvmRoute
Parameter inserver.xml
von Tomcat. Dies muss im Engine-Namensschild hinzugefügt werden.
Tomcat-Instanz konfiguriert mit 8080 port
Tomcat-Instanz konfiguriert mit 8090 port
- Starten Sie den Tomcat-Server neu
Verification
Generieren Sie eine gewisse Last für die Anwendung und überprüfen Sie das Zugriffsprotokoll des Apache-Servers, um sicherzustellen, dass Ihre Anforderung nur an eine Tomcat-Instanz weitergeleitet wird.
Sie werden auch feststellen, dass Ihre Sitzungs-ID an die Route angehängt ist, wie im folgenden Beispiel gezeigt.
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 / Beispiele / 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 "" B80557A1D9B48EC1D73CF8C7482 7 - - [46 / Sep / 2: 127.0.0.1: 18: 2013 +10] GET /examples/servlets/reqinfo.html HTTP / 02 17 0800 http: // localhost / examples / servlets / Mozilla / 1.1 (X200; Linux x3607_5.0; rv: 11) Gecko / 86 Firefox / 64 B17.0A20130807D17.0B80557EC1D9CF48C1B73D8.server7482 7 - - [46 / Sep / 2: 127.0.0.1: 18: 2013 +10] GET / examples / Servlets / Servlet / SessionExample HTTP / 02 "20 0800" http: // localhost / examples / servlets / "" Mozilla / 1.1 (X200; Linux x1124_5.0; rv: 11) Gecko / 86 Firefox / 64 B17.0A20130807D17.0B80557EC1D9CF48C1B73D8.server7482 7 - - [46 / Sep / 2: 127.0.0.1: 18: 2013 +10] POST / examples / servlets / servlet / SessionExample HTTP / 02 26 0800 http: / / localhost / examples / servlets / servlet / SessionExample Mozilla / 1.1 (X200; Linux x1142_5.0; rv: 11) Gecko / 86 Firefox / 64 B17.0A20130807D17.0B80557EC1D9CF48C1B73D8.server7482 7 - - [46 / Sep / 2: 127.0.0.1: 18: 2013 +10] GET / examples / servlets / servlet / SessionExample? dataname = dat = fadaf HTTP / 02 "28 0800" http: // localhost / examples / servlets / servlet / SessionExample "" Mozilla / 1.1 (X200; Linux x1159_5.0; rv: 11) Gecko / 86 Firefox / 64 "" B17.0A20130807D17.0B80557EC1D9CF4C1B73D8.ver .7482 - - [7 / Sep / 46: 2: 127.0.0.1: 18 +2013] "GET / examples / servlets / servlet / SessionExample? Dataname = foo & datavalue = bar HTTP / 10" 02 32 "http: // localhost / examples / servlets / servlet / SessionExample? dataname = fda & datavalue = fadaf "" Mozilla / 0800 (X1.1; Linux x200_1174; rv: 5.0) Gecko / 11 Firefox / 86 "" B64A17.0D20130807B17.0EC80557D1CF9C48B1D73.server8 - /. 7482:7:46 +2] "GET / examples / servlets / servlet / RequestHeaderExample HTTP / 127.0.0.1" 18 2013 "http: // localhost / examples / servlets /" "Mozilla / 10 (X02; Linux x36_0800; rv: 1.1) Gecko / 200 Firefox / 1423 B5.0A11D86B64EC17.0D20130807CF17.0C80557B1D9.server48
Ich hoffe, dies hilft Ihnen bei der Konfiguration von Tomcat Load Balancer mit Apache Mod Proxy und Session Sticky.
Wenn Sie mehr über die Tomcat-Administration erfahren möchten, überprüfen Sie dies Online Kurs.