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

推薦する

シェルを使用してMySQLデータバックアップスクリプトを作成する

アイデアそれは実はとても簡単ですシェル スクリプトを記述して、mysql の mysqldump を...

Docker イメージの最適化 (1.16GB から 22.4MB)

目次最適化の第一歩: 軽量ベースイメージの使用第2段階の最適化:多段階構築Docker は、ソフトウ...

React のグローバル状態管理の 3 つの基本メカニズムの調査

目次序文小道具コンテクスト州要約する序文最新のフロントエンド フレームワークはすべて、コンポーネント...

Linux telnetコマンドの使用

1. はじめにtelnet コマンドは、リモート ホストにログインするために使用されます。これは、T...

トリガーメソッドを使用して、ファイルタイプの入力をクリックせずにポップアップファイル選択ダイアログボックスを実現します。

トリガー メソッドを使用できます。JavaScript にはネイティブのトリガー関数はありません。自...

Docker で nginx の https を設定する方法

https をサポートしていない Web サイトは、ブラウザによって徐々に安全でないとマークされるた...

CentOS7 から CentOS8 にアップグレードする方法 (詳細な手順)

この記事では、具体的な例を使用して、CentOS 7 から CentOS 8 にアップグレードする方...

ウェブページの右下隅に「いいね!」カード効果を実現するための CSS (サンプルコード)

効果 HTML を実装するには、まずクリーンな HTML ページを準備し、ノードを記述します。 &l...

Vue のキーボードイベント監視の概要

キー修飾子キーボード イベントをリッスンする場合、詳細なキーを確認する必要があることがよくあります。...

記事では、js を使用して弾幕効果を実現する方法を説明します

目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...

Reactで例外を適切にキャプチャする方法

目次序文エラー境界エラー境界を超えてトライ/キャッチwindow.onerror、エラーイベント未処...

JS 9 Promise 面接の質問

目次1. 複数の .catch 2. 複数の .catch 3. .then と .catch の連...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

Tomcatを自動的に開始するサービスとして設定するにはどうすればいいでしょうか?最も簡単な方法

Tomcat が自動的にサービスを開始するように設定します。最近、問題が発生しました。サーバー上のプ...