1. レイヤー4負荷分散の概要レイヤー 4 ロード バランシングとは何ですか? いわゆる 4 層負荷分散では、主にメッセージ内のターゲット アドレスとポート、および負荷分散デバイスによって設定されたサーバー選択方法に基づいて、最終的に選択される内部サーバーを決定します。 一般的な TCP を例にとると、ロード バランシング デバイスはクライアントから最初の SYN 要求を受信すると、最適なサーバーを選択し、メッセージ内のターゲット IP アドレスを (バックエンド サーバーの IP に) 変更して、サーバーに直接転送します。 TCP 接続の確立、つまり 3 ウェイ ハンドシェイクはクライアントとサーバーの間で直接確立され、負荷分散デバイスはルーターと同様の転送の役割のみを果たします。一部の展開シナリオでは、サーバーの応答パケットがロード バランシング デバイスに正しく返されることを保証するために、メッセージの転送中にメッセージの元の送信元アドレスが変更されることがあります。 アプリケーションシナリオ 1. 負荷分散のためのレイヤー 4 + レイヤー 7。レイヤー 4 はレイヤー 7 負荷分散の高可用性を確保できます。 2. 負荷分散はポート転送を行うことができる 3. データベースの読み取りと書き込みの分離 レイヤー4負荷分散の機能 1. レイヤー 4 ロード バランシングは TCP/IP プロトコルと UDP プロトコルのみを転送でき、通常は tcp/22 や udp/53 などのポートを転送するために使用されます。 2. レイヤー 4 負荷分散は、レイヤー 7 負荷分散のポート制限問題を解決するために使用できます (レイヤー 7 負荷分散では最大 65535 個のポート番号を使用できます)。 3. レイヤー 4 負荷分散はレイヤー 7 負荷分散の高可用性の問題を解決できます (複数のバックエンド レイヤー 7 負荷分散を同時に使用できます) 4. レイヤー 4 の転送効率はレイヤー 7 よりもはるかに高いですが、TCP/IP プロトコルのみがサポートされ、HTTP および HTTPS プロトコルはサポートされません。 5. 通常、大規模な同時実行シナリオでは、7 層の負荷の前に 4 層の負荷分散を追加することが選択されます。 2.4 層負荷分散環境の構築環境の準備
lb4とlb02でNginxをビルドする # yum ソース [nginx-stable] を設定する name=nginx 安定リポジトリ ベースURL=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 有効=1 gpgkey=https://nginx.org/keys/nginx_signing.key モジュール_hotfixes=true # Nginx をインストールする [root@lb02 ~]# yum install nginx -y [root@lb4 ~]# yum install nginx -y # ユーザーを作成 [root@lb02 ~]# groupadd www -g 666 && useradd www -u 666 -g 666 -s /sbin/nologin -M [root@lb4 ~]# groupadd www -g 666 && useradd www -u 666 -g 666 -s /sbin/nologin -M # nginx を設定する [root@lb02 ~]# vim /etc/nginx/nginx.conf ユーザー www; [root@lb4 ~]# vim /etc/nginx/nginx.conf ユーザー www; # Nginxを起動する [root@lb4 ~]# systemctl start nginx && systemctl enable nginx && systemctl status nginx [root@lb02 ~]# systemctl start nginx && systemctl enable nginx && systemctl status nginx lb01 構成を lb02 に同期する [root@lb01 ~]# scp /etc/nginx/conf.d/* 172.16.1.5:/etc/nginx/conf.d/ [root@lb01 ~]# scp /etc/nginx/proxy_params 172.16.1.5:/etc/nginx/ lb02 負荷分散をテストする [root@lb02 ~]# nginx -t && systemctl nginxを再起動します #ホストテスト 10.0.0.5 linux.wp.com を構成する 3. レイヤー4の負荷分散を構成するレイヤー4の負荷分散構文 構文: stream { ... } デフォルト: - コンテキスト: メイン #例: 4 層の負荷分散ストリーム モジュールは http モジュールと同じレベルにあり、http では構成できません。stream { アップストリームバックエンド{ サーバー backend1.example.com:12345 重み=5; サーバー 127.0.0.1:12345 max_fails=3 fail_timeout=30s; } サーバー{ 聞く 12345; proxy_connect_timeout 1秒; proxy_timeout 3秒; proxy_pass バックエンド; } } nginxのメイン設定ファイルを設定する [root@lb4 ~]# vim /etc/nginx/nginx.conf #http 層のすべてのコンテンツをコメント化します。user www; ワーカープロセス 1; error_log /var/log/nginx/error.log 警告; pid /var/run/nginx.pid; イベント { ワーカー接続 1024; } #インクルードファイルを追加します include /etc/nginx/conf.c/*.conf; #http { # /etc/nginx/mime.types を含めます。 # デフォルトタイプ application/octet-stream; # log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; # access_log /var/log/nginx/access.log メイン; # ファイル送信オン; # #tcp_nopush オン; # キープアライブタイムアウト 65; # #gzip オン; # /etc/nginx/conf.d/*.conf を含めます。 #} レイヤー4負荷分散の設定 #ディレクトリを作成 [root@lb4 ~]# mkdir /etc/nginx/conf.c # [root@lb4 ~] を設定# vim /etc/nginx/conf.c/linux.lb4.com.conf ストリーム { アップストリーム lbserver { サーバー 10.0.0.4:80; サーバー 10.0.0.5:80; } サーバー{ 聞く 80; proxy_pass lbserver; proxy_connect_timeout 1秒; proxy_timeout 3秒; } } # Nginxを起動する [root@lb4 ~]# nginx -t && systemctl nginxを起動します # 10.0.0.6 linux.lb4.com にアクセスするようにホストを構成する レイヤー4負荷分散構成ログ # 4 層ロード バランシングのアクセス ログはありません。nginx.conf の設定では、アクセス ログの形式が http の下に設定されていますが、4 層ロード バランシングの設定は http の外部にあるためです。 #ログが必要な場合は、ストリーム [root@lb4 ~] の下で設定する必要があります。# vim /etc/nginx/conf.c/linux.lb4.com.conf ストリーム { log_format proxy '$remote_addr $remote_port - [$time_local] $status $protocol ' '"$upstream_addr" "$upstream_bytes_sent" "$upstream_connect_time"'; access_log /var/log/nginx/proxy.log プロキシ; アップストリーム lbserver { サーバー 10.0.0.4:80; サーバー 10.0.0.5:80; } サーバー{ 聞く 80; proxy_pass lbserver; proxy_connect_timeout 1秒; proxy_timeout 3秒; } } #すべてのWebサーバーのログを表示 [root@web01 ~]# tail -f /var/log/nginx/access.log [root@web02 ~]# tail -f /var/log/nginx/access.log レイヤー4ロードポート転送負荷分散ポート5555を要求し、web01のポート22にジャンプします。 #シンプルなストリーム構成{ サーバー{ 聞く 5555; プロキシパス 172.16.1.7:22; } } #一般的な設定ストリーム{ アップストリーム ssh_7 { サーバー 10.0.0.7:22; } サーバー{ 聞く 5555; プロキシパスssh_7; } } # テスト [D:\~]$ ssh [email protected]:5555 ジャンプ成功 負荷分散ポート6666を要求し、172.16.1.51:3306にジャンプします。 ストリーム { アップストリームdb_51 { サーバー 172.16.1.51:3306; } サーバー{ 聞く 6666; プロキシパスdb_51; } } データベーススレーブの負荷分散 ストリーム { アップストリームDBサーバー{ サーバー 172.16.1.51:3306; サーバー 172.16.1.52:3306; サーバー 172.16.1.53:3306; サーバー 172.16.1.54:3306; サーバー 172.16.1.55:3306; サーバー 172.16.1.56:3306; } サーバー{ 聞く 5555; proxy_pass dbserver; } } 要約するNginx 4 層ロード バランシング構成に関するこの記事はこれで終わりです。Nginx 4 層ロード バランシングに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: ドロップダウンメニューとスライドメニューのデザイン例
序文この友人がどれくらいDockerを使っていなかったのかは分かりませんが、突然Dockerコマンド...
1. インライン スタイル (<body></body> 内に配置されます)...
現在、DockerイメージのほとんどはDebianベースです # cat /etc/issue De...
解決策1完全にアンインストールしてすべてのデータを削除します。まず、MySQLに関連するすべてのプロ...
目次簡単な紹介1. 現在のgccバージョンを確認する2. gccインストールパッケージ(バージョン1...
この記事では、例を使用して、MySQL の水平テーブルと垂直テーブル間の変換操作を実装する方法を説明...
目次1. Vueルーター1. 説明2. 選択したルートのレンダリング: 3. 基本的な動作原理2. ...
mysql5.7.21の簡単なインストール構成は次のとおりです。 1. MySQLのインストール1....
このセクションでは、Web ページ内のテキストをスクロールしたり、スクロール プロパティを制御できる...
歴史は常に驚くほどうまく繰り返される。西洋建築とウェブデザインは、どちらも工学と芸術の組み合わせです...
領事の基本概念サーバーモードとクライアントモードサーバー モードとクライアント モードは、consu...
目次現状解決さらなる解決策やっと現状WeChat ミニプログラムには、ホームページ、個人ページ、いく...
mysqladmin ツールの使用形式は次のとおりです。 mysqladmin [オプション] コ...
mysql5.7.18のインストール時に次の問題が発生しました: プログラム入力ポイントfesetr...
1. 水平中央公開コード: html: <div class="parent&quo...