Tomcat Load Balancer mit Apache unter Verwendung von Mod Proxy und Session Sticky

Konfigurieren Sie Tomcat mit Apache mithilfe des Proxy-Moduls und Sticky Session

Die Konfiguration von Tomcat Load Balancer mit Apache-Webserver mit Mod Proxy ist ganz einfach.

Es ist einfach, wenn Sie der Reihenfolge folgen, und alles geht gut. Ich habe im Folgenden Schritt für Schritt aufgeführt, wie Sie Apache mit Tomcat konfigurieren, um Load Balancer mit Mod Proxy zu konfigurieren.

Für eine bessere Verfügbarkeit wird in einer Produktionsumgebung immer ein Lastenausgleich empfohlen.

Konfiguration des Apache-Webservers

  • Aktivieren Sie proxy_module, proxy_balancer_module und proxy_http_module in 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 Proxy-Pass zusammen mit Balancer-Namen für Anwendungskontext-Root hinzu.

In diesem Beispiel habe ich einen Proxy-Pfad als Beispiel und einen Balancer-Namen als mycluster.

Es ist sehr wichtig, stickysession einzubeziehen, da ohne diese Option die gleiche Anfrage an mehrere Tomcat-Server verteilt wird und Sie Probleme mit dem Sitzungsablauf in einer Anwendung haben.

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

Wie Sie in der obigen Konfiguration sehen können, habe ich eine Route in BalancerMember hinzugefügt, damit der Routenwert an die Sitzungs-ID angehängt werden kann.

  Sind Ihre AirPods oder AirPods Pro wasserdicht?

Lassen Sie uns nun Apache so konfigurieren, dass JSESSIONID in Zugriffsprotokollen gedruckt wird.

  • Fügen Sie Folgendes in der LogFormat-Direktive hinzu
%{JSESSIONID}C

Ex:

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""%{JSESSIONID}C"" combined
  • Starten Sie den Apache-Webserver neu

Tomcat-Konfiguration

Sie müssen Tomcat-Instanzen mit derselben Routen-ID konfigurieren, wie Sie es oben in BalancerMember getan haben.

  • Fügen Sie den jvmRoute-Parameter in server.xml von Tomcat hinzu. Dies muss im Engine-Namens-Tag hinzugefügt werden.

Tomcat-Instanz konfiguriert mit Port 8080

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

Tomcat-Instanz konfiguriert mit Port 8090

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

Überprüfung

Generieren Sie eine gewisse Last für die Anwendung und überprüfen Sie das Zugriffsprotokoll des Apache-Servers, um sicherzustellen, dass Ihre Anfrage nur an eine Tomcat-Instanz weitergeleitet wird.

  So entfernen Sie das Music Player Widget vom iPhone-Sperrbildschirm

Sie werden auch feststellen, dass Ihre Sitzungs-ID an die Route angehängt wird, 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 /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"

Ich hoffe, das hilft Ihnen bei der Konfiguration von Tomcat Load Balancer mit Apache Mod Proxy und Session Sticky.

  So fügen Sie Freunde auf dem Nintendo Switch hinzu

Wenn Sie mehr über die Tomcat-Verwaltung erfahren möchten, überprüfen Sie dies Online Kurs.

Haben Sie den Artikel gerne gelesen? Wie wäre es mit der Welt zu teilen?