Постоянство Netscaler терпит неудачу, отбрасывает пакеты
У меня настроен vserver с этим
-persistenceType CUSTOMSERVERID -lbMethod ROUNDROBIN -rule "URLQUERY CONTAINS sid="
Похоже, что если для параметра "sid" задано значение "сервер 1" и в момент поступления запроса "сервер 1" не работает, он возвращается к циклическому циклу и отправляет запрос в другое место (сервер 2 для пример)
Как я могу настроить NS таким образом, чтобы, если запрос был привязан к серверу и этот сервер не работал, запрос был просто отброшен или отклонен?
1 ответ
В этом весь смысл использования балансировщика нагрузки: если один сервер не работает, он перейдет к другому. Если вы не хотите этого, создайте 2 несадресных LB vserver за переключением контента и используйте политику переключения контента, чтобы определить, что и куда идет. Я делаю в основном все из графического интерфейса, но конечный результат должен быть примерно таким:
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