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ログに関する知識のまとめ

推薦する

Win2008 R2 mysql 5.5 zip 形式 mysql のインストールと設定

Win2008 R2 zip形式のMySQLのインストールと設定1. Baidu MySQL 5.6...

APPログインインターフェースシミュレーション要求を実装するためのPostmanデータ暗号化と復号化

目次主に使用されるPostmanの機能データの暗号化と復号化さまざまなパラメータ設定実際に送信された...

MySQL データベース面接に必須の 3 つのログの紹介

目次1. redo ログ (MySQL ストレージ エンジン InnoDB のトランザクション ログ...

mysql-8.0.11-winx64.zip の詳細なインストール チュートリアル

zip インストール パッケージをダウンロードします。 MySQL8.0 For Windows z...

JavaScript の実行コンテキストとコールスタックの詳細な説明

目次1. 実行コンテキストとは何か2. 実行コンテキスト スタックとは何ですか? 3. 実行コンテキ...

VueはSplitを使用して、ユニバーサルドラッグアンドスライドパーティションパネルコンポーネントをカプセル化します。

目次序文始める基本レイアウトデータバインディングイベントバインディング最適化ジッター問題を最適化する...

JavaScript はチェックボックスの選択機能を実装します

この記事の例では、すべてのチェックボックスの選択を実現するためのJavaScriptの具体的なコード...

React 手書きタブ切り替え問題

親ファイル React をインポートし、{useState} を 'react' か...

MySQL 作成ルーチン権限に関する注意事項

1. ユーザーにルーチン作成権限がある場合は、プロシージャ | 関数を作成できます。 2. ユーザー...

フロントエンドネットワーク、JavaScriptの最適化、開発のヒントについて簡単に説明します。

1. ネットワークの最適化YSlowには23のルールがあります。これら数十のルールは、主に、不要な...

MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの使い方の紹介DDL SQLを準備します: テーブルテストを作成...

Nginx を使用して DoNetCore を Alibaba Cloud にデプロイする方法

基本的な環境設定まずはご自身でドメイン名とサーバーを購入してくださいクラウドサーバーECSに基づいて...

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

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

Vueのフィルターとディレクティブの詳細な説明

目次vueカスタムディレクティブグローバル指令ローカル指示使用フック関数(両方ともオプション)使用方...

MySQLデータベースがNULLを可能な限り避ける理由

MySQL の多くのテーブルには、NULL が列のデフォルト属性であるため、アプリケーションが NU...