Tomcat Load Balancer avec Apache à l’aide de Mod Proxy et Session Sticky

Configurer Tomcat avec Apache à l’aide Module proxy et session persistante


La configuration de Tomcat Load Balancer avec le serveur Web Apache à l’aide de Mod Proxy est assez simple.

C’est facile lorsque vous suivez la séquence et tout se passe bien. J’ai énuméré ci-dessous étape par étape comment configurer Apache avec Tomcat pour configurer Load Balancer à l’aide de Mod Proxy.

Il est toujours recommandé d’avoir un équilibrage de charge dans un environnement de production pour une meilleure disponibilité.

Configuration du serveur Web Apache

  • Activez proxy_module, proxy_balancer_module et proxy_http_module dans httpd.conf du serveur Web Apache

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

Ajouter une passe de proxy avec le nom de l’équilibreur pour la racine de contexte d’application.

Dans cet exemple, j’ai un chemin de proxy comme exemples et un nom d’équilibreur comme mycluster.

Très important d’inclure stickysession car ne pas avoir cette option distribuera la même demande à plusieurs serveurs Tomcat et vous aurez des problèmes d’expiration de session dans une application.

ProxyRequests Off
ProxyPass / exemples équilibreur: // mycluster stickysession = JSESSIONID
ProxyPassReverse / examples balancer: // mycluster stickysession = JSESSIONID

BalancerMember http: // localhost: 8080 / examples route = server1
BalancerMember http: // localhost: 8090 / examples route = server2

Comme vous pouvez le voir dans la configuration ci-dessus, j’ai ajouté un itinéraire dans BalancerMember afin que la valeur de l’itinéraire puisse être ajoutée à l’ID de session.

Maintenant, configurons Apache pour imprimer JSESSIONID dans les journaux d’accès.

  • Ajouter le suivant dans la directive LogFormat

% {JSESSIONID} C

Ex:

LogFormat "% h% l% u% t "% r" %>s% b "% {Referer} i" "% {User-Agent} i""% {JSESSIONID} C"" combiné

  • Redémarrez le serveur Web Apache

Configuration de Tomcat

Vous devez configurer les instances tomcat avec le même ID de route que vous l’avez fait dans BalancerMember au dessus de.

  • Ajoutez le paramètre jvmRoute dans server.xml de Tomcat. Cela doit être ajouté dans la balise de nom du moteur.

Instance Tomcat configurée avec 8080 Port

Instance Tomcat configurée avec 8090 Port

  • Redémarrez le serveur Tomcat

Vérification

Générez une certaine charge sur l’application et consultez le journal d’accès du serveur Apache pour vous assurer que votre demande est acheminée vers une seule instance Tomcat.

Vous remarquerez également que votre ID de session est ajouté à l’itinéraire comme indiqué dans l’exemple ci-dessous.

Ex:

127.0.0.1 – – [18 / sept / 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 / sept / 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 / sept / 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 / sept / 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 / sept / 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 / sept / 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 / sept / 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 / sept / 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"

J’espère que cela vous aide à configurer Tomcat Load Balancer avec Apache Mod Proxy et Session Sticky.

Si vous souhaitez en savoir plus sur l’administration de Tomcat, cochez cette case Cours en ligne.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map