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

推薦する

シンプルな虫眼鏡効果を実現するJavaScript

大きな箱の中に写真があります。マウスをその上に置くと、半透明のマスク レイヤーが表示されます。マウス...

Vue での mixin の応用について議論する

Mixin は、再利用可能な機能を Vue コンポーネント間で分散する非常に柔軟な方法を提供します。...

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

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

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

tomcat デプロイメント プロジェクトの実装と IDEA との統合

目次Tomcat でプロジェクトを展開する 3 つの方法プロジェクトをwebappsディレクトリに直...

2時間のDocker入門チュートリアル

目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...

Facebook 出会い系サイトデザインのユーザー エクスペリエンス分析

<br />関連記事: Facebookの情報アーキテクチャの分析 元記事: http:...

MySQLの最適化の詳細な分析とパフォーマンス

導入データベースを使用したことがある人なら、機能面での like 記号と = 記号の類似点と相違点を...

Nginxポーリングアルゴリズムの基本的な実装方法の詳細な説明

ポーリングアルゴリズムの紹介多くの人が職場で nginx を使用しており、その設定に精通しています。...

MySQL 8.0 でリモートアクセス権限を設定する方法

前回の記事では、MySQL パスワードをリセットする方法を説明しました。一部の学生から、データベース...

Dockerを使用してMySQLデータベースをインストールするDeepinの詳細な説明

まずMySQLソースをクエリするdocker 検索 mysql公式ウェブサイトにアクセスしてイメージ...

mysql8.0 Windows x64 zip パッケージのインストールと構成のチュートリアル

MySQL 8 Windows版 zipインストール手順(ダウンロードアドレス) 1. ZIPファイ...

JS はランダム点呼システムを実装します

参考までに、JSを使用してランダム点呼システムを実装します。具体的な内容は次のとおりです。毎回の授業...

LinuxでIPアドレスを手動で設定するための詳細な手順

目次1.まずネットワークカードの設定ディレクトリに入る2. ifcfg-ens33ネットワークカード...

Rx レスポンシブプログラミングについての簡単な説明

目次1. 観察可能2. 高階関数3. エクスプレスボックスモデル3.1. エクスプレスボックスモデル...