Nginx リバース プロキシでセッション永続性を実装する 2 つの方法の詳細な説明

Nginx リバース プロキシでセッション永続性を実装する 2 つの方法の詳細な説明

1. ip_hash:

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

ip_hash 構文:

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

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

  • バックエンド サーバーがダウンすると、セッションは失われます。
  • 同じ LAN からのクライアントは同じバックエンド サーバーに転送されるため、負荷の不均衡が発生する可能性があります。
  • これは CDN ネットワークには適用されません。また、フロントエンドにプロキシがある状況にも適用されません。

2. スティッキークッキー挿入:

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

文法:

 アップストリームバックエンド{
  サーバー backend1.example.com;
  サーバー backend2.example.com;
  スティッキークッキー挿入 srv_id 有効期限=1時間 ドメイン=toxingwang.com パス=/;
}

例:

  • 有効期限: ブラウザにクッキーを保存する時間を設定します
  • ドメイン: クッキーのドメインを定義します
  • パス: クッキーのパスを定義します

さらに、バックエンド サーバー自体を使用して、関連するメカニズムを通じてセッションの同期を維持することもできます。これについては後で詳しく説明します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • nginxリバースプロキシのマルチポートマッピングの実装
  • Nginx リバース プロキシはポート 80 のリクエストを 8080 に転送します
  • Nginx リバース プロキシを使用して go-fastdfs を実行する例
  • Nginxリバースプロキシ設定でプレフィックスが削除される
  • Nginx リバースプロキシの例の詳細な説明

<<:  MySQL/MariaDB ルートパスワードリセットチュートリアル

>>:  MySQL にテーブルデータを挿入するときに中国語の文字化けが発生する問題を解決する方法

推薦する

ウェブ理論: 考えさせない読書ノート

第 1 章<br /> Web ページをユーザーにとって使いやすいものにするための最も重...

MySQL における 10 進数型の使用法の簡単な紹介

MySQL でサポートされている浮動小数点型は、 FLOAT 、 DOUBLE 、およびDECIMA...

モバイル端末での Vue2.x Picker のグローバル呼び出し実装

目次ピッカーコンポーネントとはピッカーコンポーネントの問題解決オプションの説明解決ディレクトリ部門P...

MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

この記事では、例を使用して MySQL ビューの管理ビュー操作について説明します。ご参考までに、詳細...

Linuxファイルの基本属性の知識ポイントのまとめ

Linux システムは典型的なマルチユーザー システムです。異なるユーザーは異なる立場にあり、異なる...

カルーセルアニメーションを実現するVueコンポーネント

この記事では、カルーセルアニメーションを実現するためのVueコンポーネントの具体的なコードを例として...

DockerにRedisをインストールし、パスワードを設定して接続する方法

Redis は分散キャッシュ サービスです。キャッシュは、大規模システムの開発やパフォーマンスの最適...

CentOS 7 で rpm パッケージを使用して MySQL 5.7.18 をインストールする

最近、MySQL を使っています。Linux での mysql-installation という記事...

VMWare ネットワーク アダプタの 3 つのモードの実装プロセスの分析

3つのモードブリッジ(ブリッジ モード)、NAT(ネットワーク アドレス変換モード)、ホストオンリー...

gorm で MySql データベースを操作する方法

1. テーブル内のフィールドの大文字と小文字の区別を設定するgorm クエリを使用する場合、MySQ...

Vue の計算プロパティの紹介

目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...

JavaScript で Webpack を使用するチュートリアル

目次0. Webpackとは1. Webpackの使用2. Webpackのコアコンセプト2.1 エ...

MySQLのユーザー権限の確認と管理方法の詳細な説明

この記事では、例を使用して、MySQL ユーザー権限を確認および管理する方法を説明します。ご参考まで...

Ubuntu で FTP サーバーを構築する方法の詳細な説明 (成功保証)

1. 今日の午後、コースの要件により、Ubuntu で FTP サーバーを設定する実験を行う必要が...