Nginx+Tomcat 負荷分散クラスタのインストールと構成のケースの詳細な説明

Nginx+Tomcat 負荷分散クラスタのインストールと構成のケースの詳細な説明

序文

Tomcat と Nginx + Tomcat 負荷分散クラスター、Tomcat アプリケーション シナリオを紹介し、Tomcat のインストールと構成に焦点を当てます。 Nginx + Tomcat 負荷分散ケースは、実稼働環境向けの信頼性の高い Web サイト ソリューションです。

1. Nginx+Tomcat

通常、Tomcat サイトは、単一障害点の可能性があり、顧客からの複雑で多様な要求に対処できないため、実稼働環境で単独で使用することはできません。そのため、Web サイトのアーキテクチャを改善するには、より信頼性の高いソリューションが必要です。

Nginx は優れた http サーバー ソフトウェアです。最大 50,000 の同時接続をサポートし、強力な静的リソース処理機能を備え、安定して動作し、メモリや CPU などのシステム リソースの消費量が非常に少ないです。現在、多くの大規模 Web サイトでは、サイト全体の負荷同時処理能力を向上させるために、バックエンド Web サイト プログラムのリバース プロキシおよびロード バランサとして Nginx サーバーを使用しています。

導入環境

ホストオペレーティング·システムIPアドレスメインソフトウェア

Nginx サーバー

CentOS 7.4 x86_64

192.168.196.146

nginx-1.12.2.tar.gz

Tomcat サーバー 1

CentOS 7.4 x86_64

192.168.196.147

①apache-tomcat-9.0.16.tar.gz / ②jdk-8u201-linux-x64.rpm

Tomcat サーバー 2

CentOS 7.4 x86_64

192.168.196.153

①apache-tomcat-9.0.16.tar.gz / ②jdk-8u201-linux-x64.rpm

2. Nginxサーバーを構成する

1. ファイアウォール関連サービスをオフにする

[root@localhost ~]# systemctl stop ファイアウォールd
[root@localhost ~]# systemctl ファイアウォールを無効にする
[root@localhost ~]# setenforce 0
 
[root@localhost ~]# vim /etc/resolv.conf
ネームサーバー 114.114.114.114

2. 依存パッケージをインストールする

[root@localhost ~]# yum install -y gcc gcc-c++ pcre-devel zlib-devel make

3. Nginxをコンパイルしてインストールする

[root@localhost ~]# tar zxvf nginx-1.12.2.tar.gz -C /opt/
 
[root@localhost ~]# cd /opt/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--http_stub_status_module を使用する
 
[root@localhost nginx-1.12.2]# make && make install
 
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[root@localhost ~]# useradd -M -s /sbin/nologin nginx

4. Nginxシステムサービスを追加する

[root@localhost ~]# vim /lib/systemd/system/nginx.service
 
[ユニット]
説明=nginx
後=ネットワーク.ターゲット
[サービス]
タイプ=フォーク
PIDファイル=/usr/local/nginx/logs/nginx.pid
実行開始=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
プライベートTmp=true
[インストール]
WantedBy=マルチユーザー.ターゲット
 
[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service #権限付与、root以外のユーザーは変更できません [root@localhost ~]# systemctl start nginx.service
[root@localhost ~]# systemctl nginx.service を有効にします

5. Webページのテスト

3. Tomcatアプリケーションサーバーをデプロイする

1. 実施準備

[root@localhost ~]# systemctl stop ファイアウォールd
[root@localhost ~]# systemctl は、firewalld.service を無効にします。
[root@localhost ~]# setenforce 0

2. JDKをインストールし、Java環境を構成する

[root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm

3. JDK環境を設定する

[root@localhost ~]# vim /etc/profile
...
#3行のコンテンツを挿入 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
エクスポート CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH をエクスポートします
 
[root@localhost ~]# ソース /etc/profile

4. Tomcatをインストールして設定する

[root@localhost ~]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /opt/
[root@localhost ~]# cd /opt/
[root@localhost opt]# mv apache-tomcat-9.0.16/ /usr/local/tomcat

5. 管理の最適化

[root@localhost ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@localhost ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

6. サービスstartup.shを起動する

Tomcat1の設定

1. テストディレクトリを作成する

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test

2. 動的なページ構成

[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ ページ言語="java" インポート="java.util.*" ページエンコーディング="UTF-8"%>
<html> 
<ヘッド>
<title>JSP test1 ページ</title>
</head>
<本文>
<% out.println("動的ページ 1、http://www.test1.com");%>
</本文>
</html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> #約 160 行が挿入されました...
 
[root@localhost ~]# シャットダウン.sh
[root@localhost ~]# startup.sh

Tomcat2の設定

1. テストディレクトリを作成する

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test

2. 動的なページ構成

[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ ページ言語="java" インポート="java.util.*" ページエンコーディング="UTF-8"%>
<html> 
<ヘッド>
<title>JSP test2 ページ</title>
</head>
<本文>
<% out.println("動的ページ 2、http://www.test2.com");%>
</本文>
</html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> #約 160 行が挿入されました...
 
[root@localhost ~]# シャットダウン.sh
[root@localhost ~]# startup.sh

3. nginxは静的ページを準備する

[root@localhost ~]# echo '<html><body><h1>静的インターフェース...</h1></body></html>' > /usr/local/nginx/html/index.html
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
...
アップストリーム tomcat_server {
        サーバー 192.168.192.147:8080 重み=1;
        サーバー 192.168.192.153:8080 重み=1;
}
 
location ~ .*\.jsp$ { # nginx が受信したクライアント IP アドレスを、tomcat にジャンプするリクエストのソース IP に割り当てます。クライアントの実際の IP を識別し、proxy_pass http://tomcat_server を割り当ててジャンプします。 
        proxy_set_header HOST $host; ##バックエンドウェブサーバーが受信したリクエストのホスト名(ドメイン名またはIP、ポート)を設定します。デフォルトのホスト値は、proxy_pass direct connectionで設定されたホスト名です。 proxy_set_header X-Real-IP $remote_addr; #$remote_addrをX-Real-IP(カスタム)にコピーし、ソースIPとやり取りします。
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #nginx をプロキシ サーバーとして使用すると、IP リスト セットには、通過した IP、プロキシとその IP が記録されます。}
...
 
[root@localhost ~]#systemctl nginx.serviceを再起動します

4. Webページのテスト結果

要約する

Nginx の上流に 2 台以上の Tomcat サーバーを配置して負荷分散クラスターを形成し、proxy_pass などの Web プロキシ メソッドを使用して場所にクラスター サイトを設定し、重み値を使用して Tomcat サーバーの重みを個別に設定することができます。

実稼働環境では、Tomcat サーバーのハードウェア構成が異なる場合があります。対応するサーバーの重み値を変更して、より高い構成またはより低い構成のサーバーへのアクセス要求の分散を制御できます。

Nginx+Tomcat 負荷分散クラスターの詳細なインストールと構成の事例に関するこの記事はこれで終わりです。Nginx Tomcat 負荷分散クラスターの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx+Tomcat 負荷分散クラスタの実装例
  • Nginx+Tomcat 高性能負荷分散クラスタ構築チュートリアル
  • Nginx+Tomcat で高性能な負荷分散クラスターを構築する方法
  • nginx+tomcatは負荷分散を実装し、redisセッション共有を使用します
  • NginxとTomcatは動的および静的分離と負荷分散を実現します
  • Nginx+Tomcat+Https サーバー負荷分散構成の実践の詳細な説明
  • Nginx+Tomcat 負荷分散と動的および静的分離クラスタの実装

<<:  CSS+JS で水滴の波紋アニメーション ボタン効果を実装するサンプル コード

>>:  Vue で計算プロパティを使用する際の知識ポイントのまとめ

ブログ    

推薦する

Linuxでファイルを削除してもスペースが解放されない問題の対処方法

問題の背景業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来た...

セマンティック HTML タグの紹介

ここ数年、ウェブサイト開発では DIV+CSS が非常に人気があり、当時は大きな騒動を引き起こしまし...

MySQL 8.0.13 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

MySQL 8.0.13 のインストールと設定方法を皆さんと共有したいと思います。お役に立てれば幸...

MySQL PHP 構文の簡単な分析

まずcharAt関数の基本的な構文を見てみましょう文字 = str.charAt(インデックス) c...

Tomcatの全体構造の簡単な紹介

Tomcat は Web コンテナとして広く知られています。Java を学び始めたときから現在の仕事...

cobbler ベースの Linux システムを自動的にインストールする

1. コンポーネントをインストールする yum install epel-rpm-macros.no...

MySQL でテーブルデータをクリアする 2 つの方法とその違い

MySQL でデータを削除するには 2 つの方法があります。切り詰めは大まかな伐採の一種である削除は...

CSS セレクタのグループ化の簡単な分析

セレクタのグループ化h2 要素と段落の両方を灰色にしたいとします。これを行う最も簡単な方法は、次のス...

ウェブページのカラーマッチングにおけるオーバーラップとソフトカラーマッチングの手法を詳しく説明

この記事には、細かい点は一切なく、カラーマッチングのテクニックをシェアするだけです。とてもシンプルで...

MySQLログシステムの使い方に関する簡単なチュートリアル

目次序文1. エラーログ2. バイナリログ1. バイナリログを有効にする2. バイナリログ形式3. ...

Linux yum コマンドを使用して mysql8.0 をインストールする方法の詳細なチュートリアル

1. 設置前によく掃除する rpm -pa | grep mysql または rpm -qa | g...

CentOS に MySQL をインストールしてリモート アクセスを設定する方法

1. MySQLリポジトリソースをダウンロードする$ wget http://repo.mysql....

CSS のフローティング サンプル コードをクリアする方法

概要この記事のフレームワーク図は次のとおりです。 1. フローティングとは一体何でしょうか? W3s...

Linuxでブーストライブラリをインストールするための完全な手順

序文Boost ライブラリは、標準ライブラリのバックアップとして機能し、C++ 標準化プロセスの開発...

Unicode の数学記号の概要

数学、物理学、および一部の科学技術分野で使用される特殊記号は多数あります。Unicode コードには...