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の双方向通信実装コード

推薦する

Linux で TCP 接続の最大数をテストする方法

序文TCP サーバの最大同時接続数に関して、「ポート番号の上限が 65535 であるため、TCP サ...

JavaプログラミングでJavaScriptの超実用的なテーブルプラグインを書く

目次効果ドキュメント最初のステップステップ2ステップ3ソースコード効果ドキュメント最初のステップta...

VMware 仮想マシン (CentOS7 イメージ) を使用して Linux をインストールする

1. VMwareのダウンロードとインストールリンク: https://www.jb51.net/s...

JS配列の次元削減のいくつかの方法の詳細な説明

2次元配列の次元削減配列インスタンスメソッド concat と ES6 スプレッド演算子を使用した次...

Linux のバックグラウンドで & と nohup を使用する方法

ターミナルやコンソールで作業しているときは、メールを読むなど、もっと重要な作業があるかもしれないので...

HTMLの基礎: HTMLの基本構造

HTML ハイパーテキスト ドキュメントの基本構造は、ドキュメント ヘッダーとドキュメント本体の 2...

複数のプロジェクトをデプロイする Docker nginx の例

前提条件1. ローカルコンピュータとサーバーにDockerがインストールされています。ダウンロード方...

MySQL における datetime と timestamp の違いと使い方

1. MySQL で現在の時刻を表現するにはどうすればよいでしょうか?実際、表現方法はいろいろありま...

ホームページのデザインはウェブデザイナーのレベルを最もよく反映する

私がこれまで携わってきた多くのプロジェクトでは、基本的に避けられない悪循環がありました。それは、ホー...

コードレイン効果を実現するjQueryプラグイン

この記事では、コードレイン特殊効果を実現するためのjQueryプラグインの具体的なコードを参考までに...

バックエンド管理システムを構築するためのvue-element-adminの実装手順

最近、カンファレンスの健康申告システムに取り組んでいたとき、バックエンドを構築する必要があり、vue...

MySQL フラッシュリストとダーティページフラッシュメカニズム

1. レビューMySQL の起動後にバッファ プールが初期化されます。バッファ プールは N 個の空...

ffmpeg 中国語パラメータの説明と使用例

1. ffmpeg がビデオ ファイルをプッシュする場合、オーディオとビデオのエンコード形式は H2...

6つのレイアウトでのFrameLayoutの使用

序文前回はLinearLayoutについて説明しました。今回はFrameLayoutの使い方を説明し...

HTML で js を使用してローカル システム時間を取得する

コードをコピーコードは次のとおりです。 <div id="名前"> ...