![La persistencia de Netscaler falla, descarta paquetes](https://rvso.com/image/668789/La%20persistencia%20de%20Netscaler%20falla%2C%20descarta%20paquetes.png)
Tengo un vserver configurado con esto
-persistenceType CUSTOMSERVERID -lbMethod ROUNDROBIN -rule "URLQUERY CONTAINS sid="
Parece que si el parámetro "sid" está configurado para ir al "servidor 1" y en el momento en que llega la solicitud, el "servidor 1" está inactivo, vuelve al round robin y envía la solicitud a otro lugar (servidor 2 para ejemplo)
¿Cómo puedo configurar el NS de modo que si una solicitud está destinada a un servidor y ese servidor no funciona, la solicitud simplemente se descarta o se rechaza?
Respuesta1
Ese es el objetivo de usar el balanceador de carga, si un backend no funciona, irá al otro. Si no desea eso, cree 2 servidores virtuales LB no direccionables detrás de un cambio de contenido y use una política de cambio de contenido para definir qué va y dónde. Hago casi todo desde la interfaz gráfica de usuario, pero el resultado final debería ser algo como esto:
add lb vserver LB_for_backend_1 SSL 0.0.0.0 0 -persistenceType COOKIEINSERT -timeout 240 -Listenpolicy None -cltTimeout 180
add lb vserver LB_for_backend_2 SSL 0.0.0.0 0 -persistenceType COOKIEINSERT -timeout 240 -Listenpolicy None -cltTimeout 180
bind lb vserver LB_for_backend_1 service_For_Backend_1
bind lb vserver LB_for_backend_2 ServiceGroup_for_backend_2
add cs vserver CS_CUSTOMSERVERID SSL 192.168.1.100 443 -cltTimeout 180 -Listenpolicy None
add cs policy CSPol_for_backend_1 -rule "HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).CONTAINS(\"sid=")
add cs policy CSPol_for_backend_2 -rule "HTTP.REQ.HOSTNAME.SET_TEXT_MODE(IGNORECASE).CONTAINS(\"hostname")"
bind cs vserver CS_CUSTOMSERVERID -policyName CSPol_for_backend_1 -targetLBVserver LB_for_backend_1 -priority 110
bind cs vserver CS_CUSTOMSERVERID -policyName CSPol_for_backend_2 -targetLBVserver LB_for_backend_2 -priority 120