Nginx+tomcat ロードバランシングクラスタの実装方法

Nginx+tomcat ロードバランシングクラスタの実装方法

実験環境は以下のとおりです

ここに画像の説明を挿入

ここでは、4 台のサーバー (1 台の nginx、負荷用の 2 台の tomcat、データ ストレージ用の 1 台の MySQL) を準備する必要があります。
次のようにソフトウェア パッケージを準備します。

ここに画像の説明を挿入

ソフトウェア パッケージのアドレス リンク:

リンク: https://pan.baidu.com/s/1Zitt5gO5bDocV_8TgilvRw 抽出コード: ny1r

nginx 設定 (172.16.1.54)

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

yum -y インストール pcre-devel zlib-devel gcc gcc-c++

2. nginx実行ユーザーを作成する

ユーザー追加 -M -s /sbin/nologin nginx

3. ソースパッケージnginx-1.18.0.tar.gzを解凍し、ソフトウェアパッケージを事前にサーバーにアップロードします。

tar zxf nginx-1.18.0.tar.gz -C /usr/src/

4. nginxを設定する

/usr/src/nginx-1.18.0/ をコピーします
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
#--prefix nginx インストール パス#--user 実行中のユーザー#--group 実行中のグループ#--with-http_stub_status_module nginx クライアント ステータス モジュール。Nginx の現在のステータスを監視するために使用されます

5. コンパイルしてインストールする

作る
インストールする

6. メインプログラムパスを最適化する

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#nginx を起動 nginx
#nginxを停止する nginx -s stop
#nginxをリロード -s reload

7. メイン構成ファイルを変更し、負荷分散サーバーリストを設定します。

vim /usr/local/nginx/conf/nginx.conf
#http フィールドに追加します。これは、アップストリームの tomcatserver{ の 33 行目になるはずです。
     サーバー 172.16.1.55:8080 重み=1;
     サーバー 172.16.1.56:8080 重み=1;
   }
#サーバーのロケーションフィールドに追加します。location / {の50行になる予定です。
    ルートhtml;
    インデックス index.html index.htm;
    proxy_pass http://tomcatserver;
   }

8. nginxを起動する

nginx

tomcat1 設定 (172.16.1.55)

1. ソフトウェア パッケージ apache-tomcat-8.5.61.tar.gz と jdk-8u271-linux-x64.tar.gz をアップロードします。

ここに画像の説明を挿入

2. Tomcatをデプロイし、JDK環境を構成する

#jdk パッケージを解凍し、指定された場所に移動します tar zxf jdk-8u271-linux-x64.tar.gz -C /usr/src/
mv /usr/src/jdk1.8.0_271/ /usr/local/jdk1.8

環境変数の設定

vim /etc/プロファイル
#最後にコンテンツを追加します export JAVA_HOME=/usr/local/jdk1.8
JRE_HOME=/usr/local/jdk1.8/jre をエクスポートします。
エクスポート CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
エクスポート PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#ファイルをすぐに有効にします。/etc/profile

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

#Tomcat パッケージを解凍し、指定された場所に移動します tar zxf apache-tomcat-8.5.61.tar.gz -C /usr/src
mv /usr/src/apache-tomcat-8.5.61/ /usr/local/tomcat8

4. Java Webサイトを作成する

mkdir -p /web/webapp1

5. jspテストページを書く

vim /web/webapp1/index.jsp
#入力コンテンツ <%@ page language="java" contentType="text/html; charset=UTF-8"
	ページエンコーディング="UTF-8"%>
<%@ ページインポート="java.sql.*"%>

<html>
<ヘッド>
<title>JSP 経由でデータ テーブルを開く</title>
</head>
<本文>
	<%
		試す {
			Class.forName("com.mysql.jdbc.Driver"); //ドライバー名 String url = "jdbc:mysql://172.16.1.57:3306/test"; //データベース名 String username = "root"; //データベースユーザー名 String password = "123456"; //データベースユーザーパスワード Connection conn = DriverManager.getConnection(url, username, password); //接続ステータス if (conn != null) {
				out.print("データベース接続に成功しました!");
			} それ以外 {
				out.print("接続に失敗しました!");
			}
		} キャッチ (例外 e) {
			out.print("データベース接続例外!"+e.getMessage());
		}
	%>
</本文>
</html>

index.jspファイルを直接サーバーに渡すこともできます。

ここに画像の説明を挿入

6. Tomcatのメイン設定ファイルを変更し、仮想ホストを定義し、Webサイトのディレクトリを指定します。

vim /usr/local/tomcat8/conf/server.xml
# ホスト フィールドに追加します (154 行目にあるはずです) <Context docBase="/web/webapp1" path="" reloadable="false" >
</コンテキスト>

7. Tomcatを起動する

ローカルのtomcat8.0.1 ...
#/usr/local/tomcat8/bin/shutdown.sh tomcatを停止する

tomcat2 設定 (172.16.1.56)

tomcat2の設定はtomcat1の設定と一致している

MySQL 設定 (172.16.1.57)

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

yum -y インストール ncurses-devel gcc gcc-c++

2. ソースコードパッケージ(cmakeとmysql5.6)をアップロードする

ここに画像の説明を挿入

3. MySQLはcmakeを使用してコンパイルおよびインストールする必要があります

tar zxf cmake-2.8.6.tar.gz -C /usr/src/
/usr/src/cmake-2.8.6/ をコピーします。
./configure
作成 && インストール

4. MySQLをコンパイルしてインストールする
MySQLユーザーを作成する

グループ追加mysql
ユーザー追加 -M -s /sbin/nologin mysql -g mysql

開梱

tar zxf mysql-5.6.36.tar.gz -C /usr/src/

構成

/usr/src/mysql-5.6.36/ をコピーします
#cmake を設定するときは大文字と小文字に注意してください -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
#-DCMAKE_INSTALL_PREFIX はインストール ディレクトリを指定します。#-DSYSCONFDIR は初期化パラメータ ファイル ディレクトリを指定します。#-DDEFAULT_CHARSET はデフォルトの文字セット エンコーディングを指定します。#-DDEFAULT_COLLATION はデフォルトの文字セット照合ルールを指定します。#-DWITH_EXTRA_CHARSETS はサポートされる追加の文字セット エンコーディングを指定します。

コンパイルしてインストールする

作る
インストールする

データベースディレクトリの権限を設定する

chown -R mysql:mysql /usr/local/mysql

設定ファイルを作成する

rm -rf /etc/my.cnf
cp サポートファイル/my-default.cnf /etc/my.cnf

データベースを初期化する

#autoconfライブラリをインストールします yum -y install autoconf
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

環境変数を設定し、mysqlコマンドのサポートを追加する

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#即時有効。/etc/profile

MySQLを起動する

#サービス起動ファイルをMySQLインストールディレクトリにコピーします cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
#実行権限を追加 chmod +x /usr/local/mysql/bin/mysqld.sh
/usr/local/mysql/bin/mysqld.sh 開始
#/usr/local/mysql/bin/mysqld.sh stop MySQLを停止します

許可されたユーザー

mysql -u ルート
'123456' で識別される 'root'@'%' に *.* 上のすべての権限を許可します。

最後に、データベースに接続するために jsp ファイルにアクセスする場合は、java jar パッケージを tomcat の lib ディレクトリに配置する必要があります (両方の tomcat をアップロードする必要があります)。

ここに画像の説明を挿入

確認する

最後に、外部クライアントを使用して nginx サーバーにアクセスし、tomcat の jsp ファイルに自動的にジャンプして、データベース接続が成功したことを通知します。

ここに画像の説明を挿入

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

以下もご興味があるかもしれません:
  • Nginx+Tomcat 負荷分散クラスタのインストールと構成のケースの詳細な説明
  • Nginx+Tomcat 負荷分散クラスタの実装例
  • Docker ベースの Tomcat クラスタと Nginx ロード バランシングの展開の概要
  • Nginx 経由で Tomcat9 クラスターを構築し、セッション共有を実現する
  • Nginx で Tomcat クラスターを構築する方法

<<:  React 国際化 react-i18next の詳細な説明

>>:  MySQLログに関する知識のまとめ

推薦する

HTML のスクロールバーについて/スクロールバーの削除

1. xhtmlの下のスクロールバーの色元の HTML では、ページ全体のスクロール バーを次のよう...

Windows10のマウスを模倣して境界線を光らせる効果を実現するCSSの詳細解説

最新の Windows 10 アップデートをインストールした後、システム UI の詳細な効果が顕著に...

MySQL 制約の超詳細な説明

目次MySQL 制約操作1. 非ヌル制約2. ユニーク制約3. 主キー制約4. 外部キー制約5. カ...

yum から docker インストール パッケージをダウンロードし、オフライン マシンにインストールする例の詳細なコード

1. ネットワークマシンでは、デフォルトのcentosyumソースを使用します [root@kole...

IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

問題: IIS を通じて公開された Web サイトは F5 デバイスの背後に配置されています。透過的...

js 加算、減算、乗算、除算の正確な計算方法のサンプルコード

序文コンピュータの数値は浮動小数点であるため、計算プロセス中に取得されるデータは通常正確ではなく、そ...

Linux で AutoFs マウント サービスをインストールするチュートリアル

Samba サービスでも NFS サービスでも、サーバーの起動時にリモート共有リソースが自動的にマ...

cmd と python での MySQL の一般的な操作についての簡単な説明

環境設定1: MySQLをインストールし、MySQLのbinディレクトリを環境変数に追加する環境設定...

高さ:100% が機能しないのはなぜですか?

高さ:100% が機能しないのはなぜですか?この知識は不人気ではありませんが、使用する際には混乱する...

Dockerコンテナのデータを復元する方法

プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...

きれいなJavaScriptコードの書き方を教える記事

目次1. 変数意味のある名前を使う不必要なコンテキストを追加しないようにするハードコードされた値を避...

純粋な CSS3 で水平無限スクロールを実装するためのサンプル コード

この記事の例はすべて小さなプログラムで書かれていますが、実装される機能には影響しません。 wxmlル...

sqlとmysqlの違いは何ですか?

SQL とは何ですか? SQL はデータベースを操作するために使用される言語です。 SQL はすべ...

JavaScript オブジェクトを比較する 4 つの方法

目次序文参考比較手動比較浅い比較徹底比較要約する序文JavaScript でプリミティブ値を比較する...

vue3 のさまざまな構文形式を比較したサンプルコード

デフォルトのテンプレートメソッドはvue2に似ており、コンポーネント内のセットアップ関数を使用します...