![A persistência do Netscaler falha, descarta pacotes](https://rvso.com/image/668789/A%20persist%C3%AAncia%20do%20Netscaler%20falha%2C%20descarta%20pacotes.png)
Eu tenho um vserver configurado com isso
-persistenceType CUSTOMSERVERID -lbMethod ROUNDROBIN -rule "URLQUERY CONTAINS sid="
Parece que se o parâmetro "sid" estiver definido para ir para "servidor 1" e no momento em que a solicitação chegar, o "servidor 1" estiver inativo, ele voltará ao round robin e enviará a solicitação para outro lugar (servidor 2 para exemplo)
Como posso configurar o NS de forma que, se uma solicitação estiver vinculada a um servidor e esse servidor estiver inativo, a solicitação seja descartada ou rejeitada?
Responder1
Esse é o objetivo de usar o balanceador de carga, se um back-end estiver inativo, ele irá para o outro. Se você não quiser isso, crie 2 vservers LB não endereçáveis atrás de uma troca de conteúdo e use a política de troca de conteúdo para definir o que vai para onde. Eu faço principalmente tudo a partir da interface gráfica, mas o resultado final deve ser algo assim:
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