Configurer Tomcat avec Apache en utilisant Module proxy et session permanente
La configuration de Tomcat Load Balancer avec le serveur Web Apache à l'aide de Mod Proxy est assez simple.
C'est facile quand on suit la séquence, et tout se passe bien. J'ai répertorié étape par étape comment configurer Apache avec Tomcat pour configurer Load Balancer à l'aide de Mod Proxy.
L'équilibrage de la charge est toujours recommandé dans un environnement de production pour une meilleure disponibilité.
Apache Web Server Configuration
- Activer
proxy_module
,proxy_balancer_module
etproxy_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
Ajoutez une transmission de proxy avec le nom de l'équilibreur pour la racine du contexte de l'application.
Dans cet exemple, j'ai un chemin de proxy comme exemples et le nom de l'équilibreur comme moncluster.
Très important à inclure Collision 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 / 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
Comme vous pouvez le voir dans la configuration ci-dessus, j'ai ajouté une route dans BalancerMember afin que la valeur de la route puisse être ajoutée à l'ID de session.
Maintenant, configurons Apache pour imprimer JSESSIONID dans les journaux d'accès.
- Ajouter un suivi 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
Tomcat Configuration
Vous devez configurer les instances tomcat avec le même identifiant de route que vous l'avez fait dans BalancerMember au dessus.
- Ajouter
jvmRoute
paramètre dansserver.xml
de Tomcat. Cela doit être ajouté dans le tag de nom du moteur.
Instance Tomcat configurée avec 8080 port
Instance Tomcat configurée avec 8090 port
- Redémarrez le serveur Tomcat
Verification
Générez une charge sur l'application et vérifiez le journal d'accès du serveur Apache pour vous assurer que votre demande est acheminée vers une seule instance de tomcat.
Vous remarquerez également que votre identifiant de session est ajouté à l'itinéraire comme indiqué dans l'exemple ci-dessous.
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 / 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.s "2 - - [127.0.0.1 / sept. / 18: 2013: 10: 02 +17]" GET /examples/servlets/reqinfo.html HTTP / 0800 "1.1 200" http: // localhost / examples / servlets / "" Mozilla / 3607 (X5.0; Linux x11_86; rv: 64) Gecko / 17.0 Firefox / 20130807 "" B17.0A80557D1B9EC48D1CF73C8B7482D7.server46 "2 - - [127.0.0.1 / Sep / 18: 2013: 10: 02 +20]" GET / exemples / servlets / servlet / SessionExample HTTP / 0800 "1.1 200" http: // localhost / examples / servlets / "" Mozilla / 1124 (X5.0; Linux x11_86; rv: 64) Gecko / 17.0 Firefox / 20130807 "" B17.0A80557D1B9EC48D1CF73C8B7482D7.server46 "2 - - [127.0.0.1 / Sep / 18: 2013: 10: 02 +26]" POST / exemples / servlets / servlet / SessionExample HTTP / 0800 "1.1 200" http: / / localhost / examples / servlets / servlet / SessionExample "" Mozilla / 1142 (X5.0; Linux x11_86; rv: 64) Gecko / 17.0 Firefox / 20130807 "" B17.0A80557D1B9EC48D1CF73C8B7482D7.server46 "2 - - [127.0.0.1 / Sep / 18: 2013: 10: 02 +28]" GET / examples / servlets / servlet / SessionExample? dataname = fda & datavalue = fadaf HTTP / 0800 "1.1 200" http: // localhost / examples / servlets / servlet / SessionExample "" Mozilla / 1159 (X5.0; Linux x11_86; rv: 64) Gecko / 17.0 Firefox / 20130807 "" B17.0A80557D1B9EC4D1CF73C8B7482D.7.server46 "2 .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:2013:10 +02] "GET / examples / servlets / servlet / RequestHeaderExample HTTP / 36" 0800 1.1 "http: // localhost / examples / servlets /" "Mozilla / 200 (X1423; Linux x5.0_11; rv: 86) Gecko / 64 Firefox / 17.0 "" B20130807A17.0D80557B1EC9D48CF1C73B8D7482.server7 "
J'espère que cela vous aidera à configurer Tomcat Load Balancer avec Apache Mod Proxy et Session Sticky.
Si vous souhaitez en savoir plus sur l'administration Tomcat, vérifiez ceci Cours en ligne.