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

推薦する

Dockerイメージとコンテナの一般的な操作の詳細な説明

画像アクセラレータ中国の Docker Hub からイメージをプルすることが難しい場合があります。こ...

MySQL の永続性とロールバックの原理を 1 つの記事で理解する

目次再実行ログディスクデータを直接更新するのではなく、最初にメモリデータを更新する必要があるのはなぜ...

JS は複数のタブを切り替えるカルーセルを実装します

カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます...

Linux 環境変数の設定方法のまとめ (.bash_profile と .bashrc の違い)

Linux では、アプリケーションをダウンロードしてインストールすると、起動時にアプリケーション名...

CSSでサウンドを再生するいくつかのテクニック

CSS は、スタイル、レイアウト、プレゼンテーションの領域です。色彩、サイズ、アニメーションが溢れて...

MySQLのSQL文はインデックスを使用しません

インデックス集約を使用しない MySQL クエリご存知のとおり、インデックスを追加することはクエリ速...

nginx で gzip 圧縮を実装してウェブサイトの速度を向上させる方法

目次gzip 圧縮を使用する理由は何ですか? nginxはgzipを実装するgzip処理nginx ...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

Mysql5.7でのスケジュールバックアップの実装

1. MySQL インストール パス D:\xxx\MYSQL\MySQL Workbench CE...

Linux でも利用できる人気の Windows アプリ 10 選

データ分析会社Net Market Shareによると、Linuxデスクトップオペレーティングシステ...

Eclipse は Tomcat を構成しますが、Tomcat には無効なポート解決策があります

目次1. EclipseがTomcatを構成する2. Tomcat の無効なポートの解決方法方法1:...

Vueのコンポーネントのprops属性について詳しく説明します

目次質問1: 小道具は具体的にどのように使用されますか?原理は何ですか?下を見る質問 2: 年齢に ...

複数の Tomcat を展開して起動し、プロジェクトを移行する方法を 1 つの記事で学習します。

目次tomcatをデプロイする1.ダウンロードして解凍する2. 設定ファイルを変更する移植プロジェク...

MySQLの日付文字列タイムスタンプ変換の詳細な説明

時刻、文字列、タイムスタンプ間の変換は、日常生活でよく使用されます。よく使用されますが、私は使用する...

ホワイトボードを踏まないようにするゲームを実装するための HTML+CSS+JS

目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...