![Netscaler持久化失敗,丟包](https://rvso.com/image/668789/Netscaler%E6%8C%81%E4%B9%85%E5%8C%96%E5%A4%B1%E6%95%97%EF%BC%8C%E4%B8%9F%E5%8C%85.png)
我有一個配置了這個的虛擬伺服器
-persistenceType CUSTOMSERVERID -lbMethod ROUNDROBIN -rule "URLQUERY CONTAINS sid="
看起來,如果“sid”參數設定為轉到“伺服器 1”,並且在請求傳入時,“伺服器 1”已關閉,它會退回到循環並將請求發送到其他地方(伺服器 2 用於範例)
如何配置 NS,以便如果請求綁定到伺服器並且該伺服器已關閉,則該請求將被丟棄或拒絕?
答案1
這就是使用負載平衡器的全部意義,如果一個後端發生故障,它將轉到另一個後端。如果您不希望這樣,請在內容交換後面建立 2 個不可尋址的 LB 虛擬伺服器,並使用內容交換策略來定義內容的去向。我幾乎所有的事情都是透過 GUI 完成的,但最終結果應該是這樣的:
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