Nginxはリバースプロキシを使用して負荷分散プロセス分析を実装します

Nginxはリバースプロキシを使用して負荷分散プロセス分析を実装します

導入

dockerコンテナとdocker-composeに基づいて、Linux環境でのdockerの基本的な使い方を学ぶ必要があります。

2つのTomcatを負荷分散サーバーとして使用する

1. dockerを使用してTomcatとnginxのイメージを取得する

nginx リファレンスをプルする

tomcat リファレンスをプルする

2. docker-composeを使用して2つのTomcatサービスを作成する

新しい tomcat ディレクトリを作成し、そのディレクトリ内に docker-compose.yml ファイルを作成して、次の内容を入力します。

バージョン: '3'
サービス:
  トムキャット1:
    画像: トムキャット
    コンテナ名: tomcat1
    ポート:
      - 9090:8080

  トムキャット2:
    画像: トムキャット
    コンテナ名: tomcat2
    ポート:
      - 9091:8080

コンテナを起動するには、docker-compose.yml ファイルと同じディレクトリで次のコマンドを実行します (-d はバックグラウンドで実行することを意味します)

docker-compose を起動 -d

成功したら、Dockerコンテナリストを確認します

注文

ドッカーps

結果の例には、tomcat1とtomcat2の2つのコンテナがあります。

コンテナID イメージ コマンド 作成ステータス ポート名
271dd3610d1d tomcat "catalina.sh run" 58 分前 58 分前に起動 0.0.0.0:9091->8080/tcp tomcat2
fa19d20f0022 tomcat "catalina.sh run" 58 分前 58 分前に起動 0.0.0.0:9090->8080/tcp tomcat1

コンテナにインタラクティブにアクセスし、ホームページのコンテンツを変更して 2 つの Tomcat を区別します (以下の例では Tomcat が使用されています)

注文

docker exec -it fa19d20f0022 バッシュ

ホームページにコンテンツを追加する

echo "9090" >> webapps/ROOT/index.jsp

3. nginxサービスを作成する

新しい nginx ディレクトリを作成し、そのディレクトリ内に docker-compose.yml ファイルを作成して、次の内容を入力します。

バージョン: '3.1'
サービス:
  nginx:
    再起動: 常に
    画像: nginx
    コンテナ名: nginx
    ポート:
      - 81:80
    ボリューム:
      - ./conf/nginx.conf:/etc/nginx/nginx.conf

docker-compose は /conf/nginx.conf を自動的にフォルダーとして扱うため、コンテナーを作成する前に nginx ディレクトリに conf ディレクトリを作成し、conf ディレクトリに nginx.conf ファイルを作成して次の内容を入力する必要があります。

ユーザー nginx;
ワーカープロセス 1;

イベント {
 ワーカー接続 1024;
}

http {
 アップストリーム myapp1 {
  server [サーバーIP]:9090 weight=10;
  サーバー [サーバー IP]:9091 重み = 10;
 }
 サーバー{

  聞く 80;
  server_name [サーバーIP];
  位置 / {
   proxy_pass http://myapp1;
  }
 }
}

docker-compose.ymlと同じディレクトリで実行します。

docker-compose を起動 -d

4. [server ip]:81 にアクセスし、数回更新して、2 つの Tomcat サービス間の切り替えを確認します。

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

以下もご興味があるかもしれません:
  • Nginx リバース プロキシと負荷分散を実装する方法 (Linux ベース)
  • Nginx リバース プロキシと負荷分散の実践
  • Nginx 7層リバースプロキシと負荷分散についての簡単な説明
  • Nginx のロードバランシングとリバースプロキシの設定と最適化の詳細な説明
  • 詳細な Nginx リバース プロキシと負荷分散の導入ガイド
  • Nginx HTTP ロードバランシングとリバースプロキシ構成の詳細な説明
  • nginx のロードバランシングとリバースプロキシの説明

<<:  JavaScriptオフセットは、ウィンドウ内でのマウス座標の取得とモジュールのドラッグを実装します。

>>:  MySQL 5.7.24 のインストールと設定方法のグラフィックチュートリアル

推薦する

Vue はカスタム「モーダル ポップアップ ウィンドウ」コンポーネントのサンプル コードを実装します

目次序文レンダリングサンプルコード要約する序文ダイアログ ボックスは非常に一般的なコンポーネントであ...

Tomcatの再構成後に起動が遅くなる問題を迅速に解決

Jenkins+Tomcatサーバーの設定中に、Tomcat設定ファイルが変更され、サーバーのTom...

判定条件を使用してCSSファイルをインポートする

解決策 1: HEAD に次のコードを挿入するなど、HTML ドキュメントで条件付きインポートを使用...

Tomcat をアンインストールして再インストールする方法 (画像とテキスト付き)

tomcat9をアンインストールする1. Tomcatのインストールはディレクトリに解凍するだけで...

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

RHEL8 で静的 IP アドレスを設定するさまざまな方法の簡単な分析

Linux サーバーで作業している場合、ネットワーク カード/イーサネット カードに静的 IP アド...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

HTMLセマンティクスと関連するフロントエンドフレームワークの詳細な分析

セマンティクスについて意味論は、記号やシンボルとそれらが表す意味との関係を研究する学問です。言語学で...

docker-compose が遅すぎる場合の解決策の詳細な説明

解決策はただ一つ、ソースを変更することです。 github からのソースは基本的にタイムアウトするの...

MySQLデータベースのロック機構の分析

同時アクセスの場合、非反復読み取りやその他の読み取り現象が発生する可能性があります。高い同時実行性に...

Linuxカーネルをコンパイルする方法

1. 必要なカーネルバージョンをダウンロードする2. オペレーティングシステムにアップロードする3....

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...

mysql5.7でbinlogを使用してデータを復元する方法

ステップ1: MySQLでbinlogが有効になっていることを確認する '%log_bin%...

要素の$notifyポイントについての簡単な説明

当初の意図は、element-ui の $notify 通知をコンポーネントにカプセル化することでし...