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>