nginxの+ +静的および動的な負荷分散の分離を達成するのTomcat
まず、静的および動的分離と負荷分散の概要
nginxの+ Tomcatの静的および動的な分離:
いわゆる静的および動的な分離は、静的および動的なページを達成するように、(など、またはApache)、HTMLおよびその他の静的ファイルを、Tomcatの(またはWebLogic)の処理JSP、他の動的ドキュメントを行うプロセス画面にnginxのことで、クライアントの要求をあります別のコンテナへのアクセスを介して処理さ。はるかに効率的で静的なページ、動的ページのTomcatより良い取引Tomcatのnginxのプロセスは、とても良く同時処理性能を向上させることができるようにします。
nginxの+ Tomcatの負荷分散:
サーバのクラスタでは、nginxのは、単一のサーバーに過度の圧力を避けるために、要求が別のサーバー、Tomcatのハンドルにユーザから転送され、プロキシサーバー(リバースプロキシ)の役割を果たしていますユーザーの要求は、nginxの転送します
第二に、特定の手順
1、環境の紹介
名前 | 役割 | アドレス |
---|---|---|
centos7-1 | nginxの | 192.168.142.153 |
centos7-2 | Tomcatの | 192.168.142.154 |
centos7-3 | Tomcatの | 192.168.142.132 |
win7の | クライアント | 重要でない(同じセグメント) |
目的:
サーバー、静的なページにアクセスする場合、nginxのサーバーで処理動的なページは、Tomcatで処理されます
2、Tomcat構成(Tomcatの2と同じ側の構成)
JDK環境のパッケージをインストールします。
[root@localhost tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm
[root@localhost tomcat]# cd /usr/java/jdk1.8.0_201-amd64/
グローバルコンフィギュレーションファイルを変更します
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
//末行添加
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
[root@localhost jdk1.8.0_201-amd64]# cd /mnt/tomcat/
Tomcatのソフトウェアのインストール本体
[root@localhost tomcat]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@localhost tomcat]# cd /usr/local/
[root@localhost local]# mv apache-tomcat-9.0.16/ tomcat
スタート/ストップソフトリンクの確立
[root@localhost local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@localhost local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
//启服务,关防火墙
[root@localhost local]# startup.sh
[root@localhost local]# systemctl stop firewalld.service
[root@localhost local]# setenforce 0
Tomcatのホームを作成します。
[root@tomcat1 local]# mkdir -p /web/webapp1 #建立站点
[root@tomcat1 local]# vim /web/webapp1/index.jsp #新建Tomcat首页
<%@ page language= "java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Welcome to test site, http://www.testl.com" );%>
</body>
</html>
設定ファイルで指定されました
[root@tomcat1 local]# cd /usr/local/tomcat/conf/
[root@tomcat1 conf]# vim server.xml
##149行插入
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
//注解:
//docBase: web应用的文档基准目录
//reloadable设置监视“类”是否变化
//path=""设置默认""类
//重启服务
[root@tomcat1 conf]# shutdown.sh
[root@tomcat1 conf]# startup.sh
3、nginxの設定
設置環境のパッケージ
[root@nginx ~]# yum -y install gcc gcc-c++ zlib-devel expat-devel pcre-devel pcre openssl-devel
ソフトウェア本体をインストールnginxの
[root@nginx mnt]# cd /opt/nginx-1.12.0/
[root@nginx nginx-1.12.0]# useradd -M -s /sbin/nologin nginx
[root@nginx nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module
[root@nginx nginx-1.12.0]# make && make install
あなたがこのステップに達した場合は、nginxのは、Tomcatのと併せて3方向を持つことになり、ここで私は1つずつ説明します
(1)のみ均衡nginxの負荷は、Webサービスを提供していません。
[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//gzip后添加
upstream tomcat-server { //地址池名称
server 192.168.142.154:8080 weight=1; //指向Tomcat地址,采用轮询,权重相同
server 192.168.142.132:8080 weight=1;
}
//location /段后添加
proxy_pass http://tomcat-server; //代理指向Tomcat地址池(之前指定的)
(2)静的および動的分離のためだけnginxの場合
[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//server段后添加
location ~ (. *). jsp$ {
proxy_pass http://192.168.142.132:8080; //在nginx遇到以jsp结尾的网页时将自动代理至Tomcat服务器
proxy_set_header Host $host;
}
(3)nginxの同時ロード・バランシングとリバースプロキシ
[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//gzip后添加
upstream tomcat-server { //地址池名称
server 192.168.142.154:8080 weight=1; //指向Tomcat地址,采用轮询,权重相同
server 192.168.142.132:8080 weight=1;
}
//server段后添加
location ~ (. *). jsp$ {
proxy_pass http://tomcat-server;
proxy_set_header Host $host;
}
オープンサービス
[root@nginx nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx nginx-1.12.0]# nginx
[root@nginx nginx-1.12.0]# systemctl stop firewalld.service
[root@nginx nginx-1.12.0]# setenforce 0