我有一个配置了此内容的虚拟服务器
-persistenceType CUSTOMSERVERID -lbMethod ROUNDROBIN -rule "URLQUERY CONTAINS sid="
似乎如果将“sid”参数设置为转到“服务器 1”,并且在请求进入时“服务器 1”已关闭,它会回退到循环并将请求发送到其他地方(例如服务器 2)
我如何配置 NS,以便当请求发往某个服务器并且该服务器宕机时,该请求就会被丢弃或拒绝?
答案1
这就是使用负载平衡器的全部意义,如果一个后端宕机,它将转到另一个后端。如果您不想这样,请在内容交换后面创建 2 个不可寻址的 LB vserver,并使用内容交换策略来定义什么去哪里。我大部分都是从 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