Tomcat Load Balancer con Apache utilizzando Mod Proxy e Session Sticky

Configurare Tomcat con Apache utilizzando Modulo proxy e sessione appiccicosa


Configurare Tomcat Load Balancer con il web server Apache usando Mod Proxy è abbastanza semplice.

È facile quando segui la sequenza e tutto va bene. Ho elencato di seguito passo dopo passo su come configurare Apache con Tomcat per configurare Load Balancer usando Mod Proxy.

Avere un bilanciamento del carico è sempre consigliato in un ambiente di produzione per una migliore disponibilità.

Configurazione del server Web Apache

  • Abilita proxy_module, proxy_balancer_module e proxy_http_module in httpd.conf del server 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

Aggiungi pass proxy insieme al nome del bilanciamento per la root del contesto dell’applicazione.

In questo esempio, ho un percorso proxy come esempi e il nome del bilanciamento come mycluster.

Molto importante da includere stickysession poiché non disponendo di questa opzione, la stessa richiesta verrà distribuita a più server Tomcat e si verificheranno problemi di scadenza della sessione in un’applicazione.

Richieste proxy disattivate
ProxyPass / esempi balancer: // mycluster stickysession = JSESSIONID
ProxyPassReverse / esempi balancer: // mycluster stickysession = JSESSIONID

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

Come puoi vedere nella configurazione precedente, ho aggiunto una route in BalancerMember in modo che il valore della route possa essere aggiunto all’ID sessione.

Ora configuriamo Apache per stampare JSESSIONID nei log di accesso.

  • Aggiungi il seguente nella direttiva LogFormat

% {} JSESSIONID C

Ex:

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

  • Riavvia Apache Web Server

Configurazione Tomcat

È necessario configurare le istanze di Tomcat con lo stesso ID route utilizzato in precedenza BalancerMember sopra.

  • Aggiungi il parametro jvmRoute in server.xml di Tomcat. Questo deve essere aggiunto nel tag del nome del motore.

Istanza Tomcat configurata con 8080 porta

Istanza Tomcat configurata con 8090 porta

  • Riavvia il server Tomcat

Verifica

Genera un po ‘di carico sull’applicazione e controlla il registro di accesso del server Apache per assicurarti che la tua richiesta venga instradata a una sola istanza di Tomcat.

Noterai anche che l’ID della sessione è stato aggiunto al percorso, come mostrato nell’esempio seguente.

Ex:

127.0.0.1 – – [18 / Sep / 2013: 10: 02: 02 +0800] "POST / esempi / servlet / servlet / RequestParamEsempio HTTP / 1.1" 200 662 "http: // localhost / examples / servlet / 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] "OTTIENI / esempi / servlet / servlet / RequestInfoExample HTTP / 1.1" 200 693 "http: // localhost / examples / servlet /" "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] "OTTIENI /examples/servlets/reqinfo.html HTTP / 1.1" 200 3607 "http: // localhost / examples / servlet /" "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] "OTTIENI / esempi / servlet / servlet / SessionExample HTTP / 1.1" 200 1124 "http: // localhost / examples / servlet /" "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 / esempi / servlet / servlet / SessionExample HTTP / 1.1" 200 1142 "http: // localhost / examples / servlet / 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] "OTTIENI / esempi / servlet / servlet / SessionExample? Dataname = fda&datavalue = fadaf HTTP / 1.1" 200 1159 "http: // localhost / examples / servlet / 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] "OTTIENI / esempi / servlet / servlet / SessionExample? Dataname = foo&datavalue = bar HTTP / 1.1" 200 1174 "http: // localhost / examples / servlet / 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] "OTTIENI / esempi / servlet / servlet / RequestHeaderExample HTTP / 1.1" 200 1423 "http: // localhost / examples / servlet /" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"

Spero che questo ti aiuti a configurare Tomcat Load Balancer con Apache Mod Proxy e Session Sticky.

Se sei interessato a conoscere l’amministrazione Tomcat, controlla questo corso online.

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