Docker を使用して nginx で tomcat クラスターを構築する方法 (画像とテキスト付き)

Docker を使用して nginx で tomcat クラスターを構築する方法 (画像とテキスト付き)

まず、Tomcatフォルダを作成します。Dockerの設定を容易にするために、ルートディレクトリに直接作成します。ステップ1:フォルダの作成:公開フォルダ

mkdir -p /docker/tomcat/webapp8081

mkdir -p /docker/tomcat/webapp8082

mkdir -p /docker/tomcat/webapp8083 

ステップ 2: Tomcat コンテナを作成する (ポートは実際の状況に応じて変更できます)

docker run -d --name tomcat8081 -p 8081:8080 -v /docker/tomcat/webapp8081:/usr/local/tomcat/webapps/ tomcat
docker run -d --name tomcat8082 -p 8082:8080 -v /docker/tomcat/webapp8082:/usr/local/tomcat/webapps/ tomcat
docker run -d --name tomcat8083 -p 8083:8080 -v /docker/tomcat/webapp8083:/usr/local/tomcat/webapps/ tomcat

作成が完了したら、docker psコマンドを使用して作成が成功したかどうかを確認し、

ステップ 3: Tomcat の IP アドレスを確認します。次のコマンドを使用して、Tomcat の IP アドレスを照会します。ここでは最初の例のみを使用します。

docker inspect tomcat8081

ステップ4: テストの便宜上、ここではwarパッケージをアップロードせず、その中にhello/index.htmlファイルを直接作成します。

注意: NginxがDockerコンテナの場合は、TomactコンテナのIPを使用する必要があります。そうしないと接続できません。

まず、公式ウェブサイトからnginxの公式バージョンをダウンロードします

公式サイト: http://nginx.org/en/

右側のナビゲーション バーで [ダウンロード] をクリックし、ダウンロード インターフェイスに入り、ダウンロードするバージョンを選択します。ここでは nginx-1.6.2.tar を使用します。

ダウンロードが完了したら、ファイルをカスタムフォルダに配置します。私は /usr/local/tools/nginx-1.6.2 に配置しました。

次のコマンドを使用して nginx を解凍します。

tar vxf nginx-1.6.2.tar.gz

解凍が完了したらルートディレクトリに戻り、ルートディレクトリにホストフォルダを作成し、nginxがマウントできるようにファイルを作成します(カスタマイズすることもできます)

ここでホストフォルダを作成します

mkdir -p /docker/nginx/
nginx.conf を vim で開きます。
mkdir -p /docker/nginx/html

解凍したnegixのhtmlフォルダにあるindex.html 50x.htmlを/docker/nginx/htmlフォルダにコピーします。

以下は negix conf ファイルです。注釈によって形式が変わる場合があります。注釈を削除することを忘れないでください。

Nginx.conf:

ユーザー root;

worker_processes 2; #ここでスレッド数を設定します

#error_log ログ/error.log;
#error_log ログ/error.log 通知;
#error_log ログ/error.log 情報;
#pid ログ/nginx.pid;
イベント {
worker_connections 1024; #最大接続数}
http {
mime.types を含めます。
デフォルトタイプ アプリケーション/オクテットストリーム;
アップストリーム mytomcat{
サーバー 172.17.0.3:8080 重み=10;
# さらに、mytomcat の名前は以下の名前と一致している必要があります。これは、tomcat IP と一致している必要があります。server 172.17.0.4:8080 weight=50;
サーバー 172.17.0.5:8080 重み=10;
}
#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 ログ/access.log メイン;
ファイル送信オン;
#tcp_nopush オン;
#キープアライブタイムアウト 0;
キープアライブタイムアウト65;
#gzip オン;
サーバー{
聞く 80;
サーバー名 mytomcat;
#文字セット koi8-r;
#access_log ログ/host.access.log メイン;
位置 / {
#ルートhtml;
# インデックス index.html index.htm;
プロキシ接続タイムアウト 50;
プロキシ読み取りタイムアウト 10;
プロキシ送信タイムアウト 20;
proxy_pass http://mytomcat;
}
#エラーページ 404 /404.html;
# サーバーのエラーページを静的ページ /50x.html にリダイレクトします
#
エラーページ 500 502 503 504 /50x.html;
場所 = /50x.html {
ルートhtml;
}
# PHP スクリプトを 127.0.0.1:80 で listen している Apache にプロキシします
#
#場所 ~ \.php$ {
# プロキシパス http://127.0.0.1;
#}
# PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します
#
#場所 ~ \.php$ {
#ルートhtml;
#fastcgi_pass 127.0.0.1:9000;
# fastcgi_index インデックス.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#fastcgi_params を含めます。
#}
# Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する
# nginxのものと一致します
#
#場所 ~ /\.ht {
# すべて拒否;
#}
}
# IP、名前、ポートベースの設定を組み合わせた別の仮想ホスト
#
#サーバー{
# 8000を聴く;
# somename:8080 をリッスンします。
# server_name somename alias another.alias;
# 位置 / {
#ルートhtml;
# インデックス index.html index.htm;
# }
#}
# HTTPS サーバー
#
#サーバー{
# 443 ssl をリッスンします。
# サーバー名 localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache 共有:SSL:1m;
#ssl_session_timeout 5分;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers オン;
# 位置 / {
#ルートhtml;
# インデックス index.html index.htm;
# }
#}
}

Dockerを使い始める

コンテナを作成して実行する

81: 外部ネットワークアクセス用のポートです。実際の状況に応じて変更できます。

/docker/nginx/nginx.conf ローカルホストファイル

/etc/nginx/nginx.conf zip ファイルが抽出されるディレクトリ (変更せずにそのままにしておくこともできます)

/docker/nginx/html ローカルホストファイル

/usr/share/nginx/html ディレクトリを解凍する

docker run -d --name nginx81 -p 81:80 -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/html:/usr/share/nginx/html nginx

テスト

http://39.106.147.162:8085/hello/index.html ここでポート8085を設定しました

直接アクセス

要約する

上記は、Docker を使用して nginx を使用した tomcat クラスターを構築する方法についてのチュートリアルです。お役に立てれば幸いです。

以下もご興味があるかもしれません:
  • 負荷分散と動的および静的分離操作を実現するDocker NginxコンテナとTomcatコンテナ
  • Docker Compose を使用して nginx のロード バランシングを実装する方法
  • nginxとdockerを使用してシンプルな負荷分散を実現する詳細な説明
  • Docker ベースの Tomcat クラスタと Nginx ロード バランシングの展開の概要

<<:  MySQL クエリ フィールド タイプが json の場合の 2 つのクエリ メソッド

>>:  NodeとPythonの双方向通信実装コード

推薦する

MySQLで行または列をソートする方法

方法:説明: どちらも達成できません:方法1: sp_product から sp.productid...

任意の長さの配列を作成または埋めるための JS のヒントの要約

目次序文直接充填方式for ループの push() メソッド配列コンストラクタメソッド配列コンストラ...

HTML の META タグの使用に関するヒントの例

HTML メタタグHTML メタタグは、Web ページのコンテンツに関する情報をブラウザや検索エンジ...

ES6実装クラスのプライベート変数の書き方をいくつか詳しく説明します

プライベート変数のクロージャ実装プライベート変数は共有されないnew キーワードにより、 perso...

MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

インターネット上にはMySQL 5.7.17のインストールチュートリアルがほとんどなく不十分なので、...

Linux の一般的なハードディスク管理コマンドの紹介

目次1. dfコマンド2. duコマンド3. fsckファイルシステム修復コマンド4. ディスクステ...

MySQL マスタースレーブ遅延問題の解決方法

今日は、マスタースレーブ遅延が発生する理由とその対処方法について説明します。しっかり座って出発の準備...

MySQL テーブルにはどのくらいの量のデータを保存できますか?

プログラマーは MySQL を扱う機会が多く、毎日触れているとも言えますが、MySQL テーブルには...

JS での Reduce Fold Unfold の使用法の詳細な説明

目次折りたたむ(減らす) for...of の使用whileループの使用折り畳み実装に近い展開する配...

CSS の :focus-within の楽しさについて簡単に説明します

Bステーションでパスワードを入力するときに目を覆っているこの画像を見たことがある人もいると思いますこ...

入力テキストボックスの入力実装プロパティを無効にする

今日は、開発でよく使われる、非常に便利な HTML タグをいくつかまとめてみたいと思います。これらの...

ウェブデザイナーのウェブデザイン学習経験とスキルのまとめ

会社の影響力が拡大し、製品が改良され続けるにつれて、関連するイメージデザインもそれに追いつき、徐々に...

Vueはユーザーログイン切り替えを実装します

この記事では、ユーザーのログイン切り替えを実現するためのVueの具体的なコードを例として紹介します。...

overflow:autoの使い方の詳しい説明

本文に入る前に、オーバーフローとフレックスレイアウトの使い方をいくつか紹介します。 overflow...

MySQLのロック機構に関する最も包括的な説明

目次序文グローバルロック完全なデータベース論理バックアップFTWRL と set global re...