Tomcat Load Balancer con Apache usando Mod Proxy y Session Sticky

Configure Tomcat con Apache usando Módulo proxy y sesión fija


Configurar Tomcat Load Balancer con el servidor web Apache usando Mod Proxy es bastante fácil.

Es fácil cuando sigues la secuencia, y todo va bien. He enumerado a continuación paso a paso cómo configurar Apache con Tomcat para configurar Load Balancer usando Mod Proxy.

Siempre se recomienda tener equilibrio de carga en un entorno de producción para una mejor disponibilidad.

Configuración del servidor web Apache

  • Habilite proxy_module, proxy_balancer_module y proxy_http_module en httpd.conf del servidor 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

Agregue un pase de proxy junto con el nombre del equilibrador para la raíz del contexto de la aplicación.

En este ejemplo, tengo una ruta de proxy como ejemplos y el nombre del equilibrador como mycluster.

Muy importante incluir sesión como no tener esta opción distribuirá la misma solicitud a múltiples servidores Tomcat, y tendrá problemas de caducidad de sesión en una aplicación.

ProxyRequests Off
ProxyPass / ejemplos equilibrador: // mycluster stickysession = JSESSIONID
ProxyPassReverse / ejemplos equilibrador: // mycluster stickysession = JSESSIONID

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

Como puede ver en la configuración anterior, he agregado una ruta en BalancerMember para que el valor de la ruta se pueda agregar a la ID de sesión.

Ahora, configuremos Apache para imprimir JSESSIONID en los registros de acceso.

  • Añadir siguiente en la directiva LogFormat

% {JSESSIONID} C

Ex:

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

  • Reinicie el servidor web Apache

Configuración de Tomcat

Debe configurar las instancias de tomcat con la misma identificación de ruta que hizo en BalanceadorMiembro encima.

  • Agregue el parámetro jvmRoute en server.xml de Tomcat. Esto debe agregarse en la etiqueta del nombre del motor.

Tomcat instancia configurada con 8080 Puerto

Tomcat instancia configurada con 8090 Puerto

  • Reinicie el servidor Tomcat

Verificación

Genere algo de carga en la aplicación y verifique el registro de acceso del servidor apache para asegurarse de que su solicitud se enrute a una sola instancia de tomcat.

También notará que su ID de sesión se adjunta a la ruta como se muestra en el siguiente ejemplo.

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] "OBTENER /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"

Espero que esto le ayude a configurar Tomcat Load Balancer con Apache Mod Proxy y Session Sticky.

Si está interesado en aprender sobre la administración de Tomcat, compruebe esto curso por Internet.

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