Skip to main content

LB Apache Tomcat REDIS Windows

Pre Requisitos

1. Tener Instalado Apache

2. Tener Instalado dos Servers de Apache Tomcat

3. Tener Instalado Redis

Configuraciones Apache Tomcat

1. Descargar tomcat-cluster-redis-session-manager-4.0

2. Configurar tomcat-cluster-redis-session-manager-4.0

2.1 Copie los archivos jar descargados en su directorio tomcat/lib.

2.2 Copie el archivo redis-data-cache.properties en su directorio tomcat/conf y actualice los detalles de su servidor Redis.


#-- Redis data-cache configuration

# - ${ENV_VARIABLE_NAME}

#- redis hosts. ex: 127.0.0.1:6379, 127.0.0.2:6379, 127.0.0.2:6380, ....
redis.hosts=127.0.0.1:6379

#- redis password.
#redis.password=

#- set true to enable redis cluster mode. (default value: false)
redis.cluster.enabled=false

#- set true to enable redis sentinel mode. (default value: false)
redis.sentinel.enabled=false
# redis sentinel master name. (default value: mymaster)
redis.sentinel.master=mymaster

#- redis database. (default value: 0)
#redis.database=0

#- redis connection timeout. (default value: 2000 ms)
#redis.timeout=2000

#- enable redis and standard session mode. (default value: false)
# If enabled,
# 1. Must be enabled sticky session in your load balancer configuration. Else this manager may not return the updated session values.
# 2. Session values are stored in local jvm and redis.
# 3. If redis is down/not responding, requests uses jvm stored session values to process user requests. Redis comes back the values will be synced.
lb.sticky-session.enabled=false

#- session persistent policies. (default value: DEFAULT) ex: DEFAULT, SAVE_ON_CHANGE
# policies - DEFAULT, SAVE_ON_CHANGE, ALWAYS_SAVE_AFTER_REQUEST
# 1. SAVE_ON_CHANGE: every time session.setAttribute() or session.removeAttribute() is called the session will be saved.
# 2. ALWAYS_SAVE_AFTER_REQUEST: force saving after every request, regardless of whether or not the manager has detected changes to the session.
session.persistent.policies=DEFAULT

#- single-sign-on session timeout. (default value: 0 ms (-infinite))
redis.sso.timeout=0


2.3 Agregue las dos líneas siguientes en su archivo tomcat/conf/context.xml.

<Valve className="tomcat.request.session.redis.SessionHandlerValve" />
<Manager className="tomcat.request.session.redis.SessionManager" />

2.4 Verifique el tiempo de vencimiento de la sesión en el archivo tomcat/conf/web.xml.

<session-config>
<session-timeout>60</session-timeout>
</session-config>

3 Configuraciones Apache

3.1 Abrir el httpd.conf para activar módulo proxy_module modules/mod_proxy.so y proxy_balancer_module modules/mod_proxy_balancer.so

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
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

3.2 Configurar el Load Balances en el httpd.conf

<VirtualHost _default_:80>
<IfModule proxy_module>
<Location "/balancer-manager">
SetHandler balancer-manager
Require all granted
</Location>

ProxyRequests Off
ProxyPass /noreste balancer://mycluster/
ProxyPassReverse /noreste balancer://mycluster/


<Proxy balancer://mycluster/>
BalancerMember http://localhost:8080/noreste route=worker2
BalancerMember http://localhost:8081/noreste route=worker3
</Proxy>
</IfModule>


# Error Documents
ErrorDocument 503 /503.html
</VirtualHost>