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 のインストールと設定方法のグラフィックチュートリアル

推薦する

8 JSのreduce使用例とreduce操作方法

reduceメソッドは配列の反復メソッドです。 mapやfilterとは異なり、 reduceメソッ...

nginx 設定ファイルで環境変数を使用する方法

序文Nginx はパフォーマンスを重視して設計された HTTP サーバーです。Apache や li...

MySQL 8.0.12 解凍版インストールチュートリアル個人テスト!

Mysql8.0.12 解凍版のインストール方法をテストしましたので、ご参考までに1. ダウンロー...

Docker 経由で Spring Boot アプリケーションを公開およびデプロイするプロセスの分析

目次手動展開1.アイデアを使ってSpring Bootプロジェクトを作成する2. プロジェクトをJa...

H5レイアウト実装手順における天井と底部の吸引を解決するための純粋なCSS

どのような製品について言及したいですか?最近、ユーザーがマーケティングの変化をよりよく観察できるよう...

史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 36)

データのバックアップと復元パート2は次のとおりです基本的な概念:バックアップ、現在のデータまたはレコ...

dockerでlnmp環境を構築する方法

プロジェクトディレクトリを作成する php ディレクトリをコピーする次のプロジェクト構造を作成します...

MySQLクエリ制御ステートメントの詳細なグラフィック説明

mysql クエリ制御ステートメントフィールド重複排除 **キーワード: 明確** 構文: テーブル...

Vscode が Ubuntu にリモート接続する際のエラー問題の解決方法

1. 事件の背景:仕事上、Ubuntu への vscode リモート接続を使用する必要があります。 ...

vite を使用して vue3 アプリケーションを構築する方法

1. インストールヒント: 現在、VUE3.0 の公式翻訳ドキュメントはありません。しかし、すでに誰...

航空機戦争ゲームを実装するためのJavaScript

この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...

CSS の 4 つのインポート方法と優先順位の簡単な分析

第一に: CSSを導入する4つの方法CSS を導入する方法には、インライン スタイル、埋め込みスタイ...

CSS3 を使用して左上または右上隅にリマインダー ドットを表示するサンプル コード

効果画像(三角形をご希望の場合は、ここをクリックしてください): コード: <html>...

jsでの位置計算を徹底的に理解するのに役立つ記事

目次導入スクロール要素.スクロール()要素.scrollHeight/scrollWidth要素.s...