序章nginx が優れたリバース プロキシ サービスであることは誰もが知っています。nginx を使用したことがある人は、upstream についても知っているはずです。upstream ノードは、通常、http ノード ブラケット内に配置されます。負荷分散が必要なサーバーのリストは、通常、upstream で構成されます。 より一般的な用途は次のとおりです。 #user 誰も誰も。 #ワーカープロセス 2; nginx の pid を変更します。 error_log ログ/error.log デバッグ; イベント { … } http { … アップストリームテストサーバー{ サーバー 192.168.1.5:8080; サーバー 192.168.1.6:8080; … } サーバー{ … 位置 / { … proxy_pass http://テストサーバー; } } } 構造からわかるように、この構成は主に http リバース プロキシを処理するためによく使用されます。 しかし、バックエンド サービスの TCP をプロキシしたい場合、nginx はそれをサポートしますか?たとえば、mysql、redis などの場合、答えは「はい」です。実際、nginx は TCP/UDP の負荷分散もサポートしています。次にお話ししたいのは、nginx のストリーム モジュールです。ストリームを構成することで、このような要件を満たすことができます。ここでは、主に http リバース プロキシに nginx を使用することをお勧めします。 メイン記事Nginx の TCP/UDP 負荷分散は、ストリーム プロキシ モジュール (ngx_stream_proxy_module) とストリーム アップストリーム モジュール (ngx_stream_upstream_module) を適用することによって実装されます。 Nginx の TCP 負荷分散と LVS はどちらも 4 層の負荷分散アプリケーションです。違いは、LVS が Linux カーネルに配置され、Nginx がユーザー レベルで実行されることです。Nginx ベースの TCP 負荷分散では、より柔軟なユーザー アクセスの管理と制御を実現できます。 基本的な概念を理解したので、具体的な構成例を見てみましょう。 ワーカープロセス 4; ワーカー_rlimit_nofile 40000; イベント { ワーカー接続数 8192; } ストリーム { アップストリーム my_servers { 最小接続数; # 5秒以内に3つのエラーが発生した場合、サーバーは5秒間切断されます サーバー <IP_SERVER_1>:3306 max_fails=3 fail_timeout=5s; サーバー <IP_SERVER_2>:3306 max_fails=3 fail_timeout=5s; サーバー <IP_SERVER_3>:3306 max_fails=3 fail_timeout=5s; } サーバー{ 聞く 3306; proxy_connect_timeout 5s; # プロキシサーバーとの接続を確立するためのタイムアウトは5秒です proxy_timeout 10s; # プロキシサーバーからの応答を取得するための最大タイムアウトは10秒です proxy_next_upstream on; # プロキシされたサーバーがエラーを返すかタイムアウトすると、応答を返さなかったクライアント接続要求は上流の次のサーバーに渡されます proxy_next_upstream_tries 3; # 試行要求を最大 3 回転送します proxy_next_upstream_timeout 10s; # 合計試行タイムアウトは 10 秒です proxy_socket_keepalive on; # ハートビート検出の SO_KEEPALIVE オプションを有効にします proxy_pass my_servers; } } 詳しい説明
注意: Steam モジュールの設定が無効な場合は、使用しているバージョンがストリームをサポートしているかどうかを確認してください。モジュールが組み込まれていない場合は、コンパイル時に --with-stream パラメータを指定して、ストリーム プロキシをサポートするようにコンパイルする必要があります。 Nginx ストリーム構成プロキシ (Nginx TCP/UDP ロード バランシング) に関するこの記事はこれで終わりです。Nginx ストリーム構成プロキシに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MYSQL の 3 つのツリー構造テーブル設計の長所と短所の簡単な分析と共有
>>: CSS ですべての子要素を選択し、スタイルを追加する方法
マスターするには: localStorage、コンポーネントのカプセル化えーと、GIF に変換したビ...
<br />テーブルは XHTML では扱いにくいタグなので、このセクションで理解するだ...
目次1. 円を描く2. マウスで動かした円3. マウスでドラッグした粒子4. カラーグラデーション粒...
コードをコピーコードは次のとおりです。高さ:自動 !重要;高さ:550px;最小高さ:550px; ...
関連文書この記事の一部は、https://www.cnblogs.com/zhongchao666/...
序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...
EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合す...
この記事では、VMware Toolsのインストールと構成に関するグラフィックチュートリアルを参考と...
目次事業背景テクノロジーの活用技術的な問題デザインのアイデア😱 困惑と苦痛に満ちた顔🙄考え始める🌲デ...
1. ワニスの紹介Varnish は、高性能なオープンソースのリバースプロキシサーバーおよび HTT...
目次1. イメージをプルする2. ローカルデータボリュームを作成する3. コンテナを作成する4. J...
1 ダウンロードして準備するまず、公式ウェブサイトからTomcatをダウンロードする必要があります。...
昨年、プロジェクトの必要性により、Python でクローラーを作成しました。クロールされたデータは、...
Web ページの読み込み速度は、Web サイトの品質を評価するための重要な指標です。その理由は、ほと...
この記事では、テーブル内のデータを追加、削除、変更するためのvue要素の具体的なコードを参考までに共...