Nginxリバースプロキシセッション保持を実現する2つの方法

1. ip_hash:

ip_hashは、送信元アドレスハッシュアルゴリズムを使用して、サーバーが使用できない場合を除き、常に同じクライアントから同じバックエンドサーバーに要求を送信します。

ip_hash構文:

アップストリームバックエンド{ 
    ip_hash; 
    サーバーbackend1.example.com; 
    サーバーbackend2.example.com; 
    サーバーbackend3.example.comがダウンしています。
    サーバーbackend4.example.com; 
}

ip_hashはシンプルで使いやすいですが、次の問題があります。

バックエンドサーバーがダウンすると、セッションは失われます。

同じLANからのクライアントは同じバックエンドサーバーに転送されるため、負荷の不均衡が発生する可能性があります。

CDNネットワークには適用されず、前の段落にエージェントが存在する状況には適用されません。

 

二、sticky_cookie_insert:

sticky_cookie_insertを使用して、セッションアフィニティを有効にします。これにより、同じクライアントからの要求が同じサーバー上のサーバーのグループに渡されます。ip_hashとの違いは、IPに基づいてクライアントを判断するのではなく、Cookieに基づいて判断することです。したがって、上記のip_hash内の同じLANからのクライアントと以前のプロキシによって引き起こされる負荷の不均衡を回避できます。

文法:

アップストリームバックエンド{
    サーバーbackend1.example.com; 
    サーバーbackend2.example.com; 
    sticky_cookie_insert srv_id expires = 1h domain = toxingwang.com path = /; 
}

説明:

有効期限:ブラウザにCookieを保持する時間を設定します

ドメイン:Cookieのドメインを定義します

パス:Cookieのパスを定義します

おすすめ

転載: blog.csdn.net/weixin_42182501/article/details/101353691