![Netscaler の永続性が失敗し、パケットがドロップされる](https://rvso.com/image/668789/Netscaler%20%E3%81%AE%E6%B0%B8%E7%B6%9A%E6%80%A7%E3%81%8C%E5%A4%B1%E6%95%97%E3%81%97%E3%80%81%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%81%8C%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%81%95%E3%82%8C%E3%82%8B.png)
私はこれで構成されたvserverを持っています
-persistenceType CUSTOMSERVERID -lbMethod ROUNDROBIN -rule "URLQUERY CONTAINS sid="
「sid」パラメータが「サーバー 1」に送信するように設定されていて、リクエストが到着したときに「サーバー 1」がダウンしている場合は、ラウンドロビンにフォールバックして、リクエストを別の場所(たとえばサーバー 2)に送信するようです。
リクエストがサーバーにバインドされていて、そのサーバーがダウンしている場合に、リクエストがドロップまたは拒否されるように NS を構成するにはどうすればよいでしょうか?
答え1
これがロード バランサを使用する主な目的です。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