Nginx + Tomcat + keepalived
Nginx + Tomcat
1.Nginxの概要
最大50,000の同時接続の応答をサポートします。
強力な静的リソース処理機能を備えています
。安定した動作
。メモリやCPUなどのシステムリソースの消費量は非常に少ないです。
現在、多くの大規模なWebサイトでは、バックプロキシおよびロードバランサーとしてNginxサーバーを使用しています。サイト全体の負荷同時実行性を改善するためにWebサイトプログラムを終了する
2.Nginxの動的および静的分離の原則
場所フィールド
で照合します。.htmlで終わるファイルの場合はローカル処理に送信されます。.jspで終わるファイルの
場合はTomcatに送信されます。
3.Tomcatの重要なディレクトリ
目次 | 効果 |
---|---|
置き場 | 起動とシャットダウンのTomcatスクリプトを保存する |
conf | Tomcatのさまざまな構成ファイルを保存します |
doc | Tomcatドキュメントを保存する |
lib | Tomcatの実行に必要なライブラリファイルを保存します |
ログ | Tomcatの実行時にログファイルを保存します |
src | Tomcatのソースコードを保存します |
webapps | TomcatのメインWebパブリッシングディレクトリ |
作業 | jspコンパイル後に生成されたクラスファイルを保存します |
NFSストレージサーバーの展開
1. nfs-utils、rpcbindソフトウェアパッケージをインストールします
yum -y install nfs-utils rpcbind
2.共有ディレクトリを作成します
mkdir /opt/tomcat1
mkdir /opt/tomcat2
javascriptテストページを編集して写真をアップロードする
vim /opt/tomcat1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP web1 test</title>
</head>
<body>
<% out.println("Welcome to test site");%>
<div>动态页面</div><br/><img src="web1.jpg" />
</body>
</html>
vim /opt/tomcat2/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP web2 test</title>
</head>
<body>
<% out.println("Welcome to test2 site");%>
<div>动态页面</div><br/><img src="web2.jpg" />
</body>
</html>
3.共有ディレクトリ
vi /etc/exports
/opt/tomcat1 192.168.2.16(ro)
/opt/tomcat2 192.168.2.17(ro)
マウントを表示
showmount -e
Webクラスター
Java環境変数を構成する
1.xftpは2つのファイルをアップロードし、
解凍して移動します
tar xf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
2.環境変数を構成します
vi /etc/profile
追加
export JAVA_HOME=/usr/local/java
export JAVA_JRE=/usr/local/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_JRE/bin:$JAVA_JRE/lib
実行して表示する
source /etc/profile
echo $PATH
テスト
バージョンを表示
java -version
テストする.javaファイルを編集します
vim HelloWorld.java
public class HelloWorld {
public static void main (String[] args) {
System.out.println("helloworld!");
}
}
javac HelloWorld.java
java HelloWorld
Tomcatをデプロイする
1.解凍、移動
tar xf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat8
2.ソフト接続を確立します
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
ln -s /usr/local/tomcat8/conf/server.xml /etc/tomcat.xml
リンク後
tomcatup
:Tomcatをオンにする
tomcatdown
:Tomcatをオフにする
/etc/tomcat.xml
:構成ファイル
Tomcatを開く
tomcatup
オンになっているかどうかを確認します
netstat -anpt | grep java
Tomcatをテストします
1.Webディレクトリを作成します
mkdir -p /tomcat/web
2.nfsをローカルディレクトリにマウントします
tomcat1
mount 192.168.2.18:/opt/tomcat1 /tomcat/web
tomcat2
mount 192.168.2.18:/opt/tomcat2 /tomcat/web
取り付け状況を確認してください
3.Webサイトのルートディレクトリを設定します
構成ファイルの編集
vi /etc/tomcat.xml
<Context docBase="/tomcat/web" path="" reloadable="false">
</Context>
4.アクセステスト
リブート
curl http://localhost:8080
スケジューラー
nginx-1.12.2.tar.gz、keepalived-2.0.13.tar.gzをアップロードします
nginxをコンパイルしてインストールします
yumインストールの依存関係
yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel
ngxinが使用するログイン不可能なアカウントを作成します
useradd -M -s /sbin/nologin nginx
解凍する
tar xf nginx-1.12.2.tar.gz
cd nginx-1.12.2/
構成内容
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
コンパイルしてインストールする
make && make install -j 8
nginxソフト接続を確立します
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
Nginx構成ファイルのソフト接続
ln -s /usr/local/nginx/conf/nginx.conf /etc/
nginxが正常に実行できることを確認します
nginx -t
nginxステータスを表示する
netstat -anpt | grep nginx
プロンプトが開始されない
nginxを起動します
nginx
nginxを再起動します
killall -1 nginx
nginxを閉じる
killall -3 nginx
追加
upstream服务池
upstream tomcat_server {
server 192.168.2.16:8080 weight=1;
节点 ip地址 端口号 权重
server 192.168.2.17:8080 weight=1;
}
location ~ \.jsp$ {
proxy_pass http://tomcat_server;
} 服务地址池名
jspでリンクされている画像は、nginxルートディレクトリにアップロードする必要があります。画像がアップロードされていない場合、画像は読み込まれません。
キープアライブをインストールします
xftpアップロードキープアライブファイル、解凍
tar xf keepalived-2.0.13.tar.gz
コンパイルツールとプラグインをインストールする
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
ディレクトリを切り替え、コンパイルしてインストールします
cd keepalived-2.0.13/
./configure --prefix=/
make && make install
システム管理サービスに参加し、起動後に自動的に開始するように設定します
cp keepalived/etc/init.d/keepalived /etc/init.d/
systemctl enable keepalived.service
メインスケジューラ構成ファイルを編集します
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id Nginx_01
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.100
}
}
}
代替スケジューラ構成ファイルを編集する
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id Nginx_02
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 140
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.100
}
}
リブート
テスト
ip addrは、
メインルートスケジューラの障害テストをテストするか、ネットワークカードを無効にするか、キープアライブを無効にします。
キープアライブを再起動します
Nginxモニタリングスクリプト
スクリプトの役割は、nginxサービスに問題がある場合にkeepalivedをオフに
することです。メインスケジューラがNginxサービスにのみ問題があり、他のすべて(keepalived)が正常であるとすると、VIPはにジャンプしません。バックアップスケジューラ、およびバックアップスケジューラを有効にできません。、次の状況が表示されます。
キープアライブ構成ファイルを編集し、次のコンテンツを追加します
! Configuration File for keepalived
global_defs {
router_id Nginx_01
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.2.100
}
}
スクリプトの編集
vi /etc/keepalived/nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
killall -3 nginx
nginx
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
スクリプトの機能は、nginxのステータスを検出することです。閉じている場合は再度開き、失敗した場合はkeepalivedを閉じます。