Nginx + Tomcat load balancing cluster (with actual combat can do!)

Nginx + Tomcat load balancing cluster

nginx handle static

tomcat dynamic process

The combined movement of the separation (separated front and rear ends)

Tomcat important directories

bin: to store startup and shutdown Tomcat script
conf: store Tomcat different profile
doc: store Tomcat documentation
lib / japser / common: repository file Tomcat needed for the operation
logs: store the LOG file of Tomcat execution
src: store Tomcat source code
webapps: the main Web Tomcat distribution directory

Demo Pre-knowledge:

Nginx handling the static advantages

1.Nginx processing efficiency is much higher than static pages Tomcat processing capabilities
requested amount Tomcat 2. If the requested amount is 1000 times, 6000 times Nginx
3.Tomcat per second throughput 0 6M, Nginx per second throughput of 3.6M
4.Nginx ability to deal with static resources is six times the Tomcat process, the advantage is evident

Static and dynamic separation principle: the server receives a request from a client, both static resources but also dynamic resource

Preparing the environment:

nginx:192.168.18.147---->CentOS 7-2

Tomcat 1:192.168.18.128---->CentOS 7-3

Tomcat 2:129.168.18.148---->CentOS 7-4

Client:192.168.18.129---->Win 7-1

Tomcat 1 CentOS 7-3 server operations:

[root@localhost ~]# hostnamectl set-hostname tomcat1
[root@localhost ~]# su
[root@tomcat1 ~]# systemctl stop firewalld.service 
[root@tomcat1 ~]# setenforce 0
[root@tomcat1 ~]# mkdir /aaa
[root@tomcat1 ~]# mount.cifs //192.168.10.189/rpm /aaa
Password for root@//192.168.10.189/rpm:  
[root@tomcat1 ~]# cd /aaa/tomcat/
[root@tomcat1 tomcat]# ls
apache-tomcat-7.0.54.tar.gz  jdk-8u91-linux-x64.tar.gz
apache-tomcat-8.5.16.tar.gz  nginx-1.12.0.tar.gz
jdk-7u65-linux-x64.gz        nginx-1.6.0.tar.gz
[root@tomcat1 tomcat]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

#设置环境变量:
[root@tomcat1 tomcat]# vim /etc/profile   
#按大写字母G到末行,按小写字母o在下行插入以下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#修改完成后,按Esc退出插入模式,输入:wq保存退出
[root@tomcat1 tomcat]# source /etc/profile
[root@tomcat1 tomcat]# ls
apache-tomcat-7.0.54.tar.gz  jdk-8u91-linux-x64.tar.gz
apache-tomcat-8.5.16.tar.gz  nginx-1.12.0.tar.gz
jdk-7u65-linux-x64.gz        nginx-1.6.0.tar.gz
[root@tomcat1 tomcat]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/
[root@tomcat1 tomcat]# cd /usr/local/
[root@tomcat1 local]# ls
apache-tomcat-8.5.16  etc    include      lib    libexec  share
bin                   games  jdk1.8.0_91  lib64  sbin     src
[root@tomcat1 local]# mv apache-tomcat-8.5.16/ tomcat
[root@tomcat1 local]# ls
bin  games    jdk1.8.0_91  lib64    sbin   src
etc  include  lib          libexec  share  tomcat
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/shutdown..sh /usr/local/bin/
[root@tomcat1 local]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@tomcat1 local]# cd /web/webapp1/
[root@tomcat1 webapp1]# vim index.jsp
<%@ page language="java" import="java.until.*" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>JSP test1 page</title>
</head>
 <body>
  <% out.println("Welcome ACCP Web");%>
 </body>
</html>
#添加完成后输入:wq保存退出
[root@tomcat1 webapp1]# vim /usr/local/tomcat/conf/server.xml 
#输入/Host查找到以下内容
<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true">
#在此行下插入,添加站点目录
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
#添加完成后输入:wq保存退出
[root@tomcat1 webapp1]# startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.ja
Tomcat started.

To your browser and enter the host machine: 192.168.18.128: 8080 can be seen: Welcome KGC Web

Here Insert Picture Description

Tomcat 2 CentOS server operation 7-4:

[root@localhost ~]# hostnamectl set-hostname tomcat2
[root@localhost ~]# su
[root@tomcat1 ~]# systemctl stop firewalld.service 
[root@tomcat1 ~]# setenforce 0
[root@tomcat1 ~]# mkdir /aaa
[root@tomcat1 ~]# mount.cifs //192.168.10.189/rpm /aaa
Password for root@//192.168.10.189/rpm:  
[root@tomcat1 ~]# cd /aaa/tomcat/
[root@tomcat1 tomcat]# ls
apache-tomcat-7.0.54.tar.gz  jdk-8u91-linux-x64.tar.gz
apache-tomcat-8.5.16.tar.gz  nginx-1.12.0.tar.gz
jdk-7u65-linux-x64.gz        nginx-1.6.0.tar.gz
[root@tomcat1 tomcat]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

#设置环境变量:
[root@tomcat1 tomcat]# vim /etc/profile   
#按大写字母G到末行,按小写字母o在下行插入以下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#修改完成后,按Esc退出插入模式,输入:wq保存退出
[root@tomcat1 tomcat]# source /etc/profile
[root@tomcat1 tomcat]# ls
apache-tomcat-7.0.54.tar.gz  jdk-8u91-linux-x64.tar.gz
apache-tomcat-8.5.16.tar.gz  nginx-1.12.0.tar.gz
jdk-7u65-linux-x64.gz        nginx-1.6.0.tar.gz
[root@tomcat1 tomcat]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/
[root@tomcat1 tomcat]# cd /usr/local/
[root@tomcat1 local]# ls
apache-tomcat-8.5.16  etc    include      lib    libexec  share
bin                   games  jdk1.8.0_91  lib64  sbin     src
[root@tomcat1 local]# mv apache-tomcat-8.5.16/ tomcat
[root@tomcat1 local]# ls
bin  games    jdk1.8.0_91  lib64    sbin   src
etc  include  lib          libexec  share  tomcat
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/shutdown..sh /usr/local/bin/
[root@tomcat1 local]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@tomcat1 local]# cd /web/webapp1/
[root@tomcat1 webapp1]# vim index.jsp
<%@ page language="java" import="java.until.*" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>JSP test1 page</title>
</head>
 <body>
  <% out.println("Welcome KGC Web");%>
 </body>
</html>
#添加完成后输入:wq保存退出
[root@tomcat1 webapp1]# vim /usr/local/tomcat/conf/server.xml 
#输入/Host查找到以下内容
<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true">
#在此行下插入,添加站点目录
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
#添加完成后输入:wq保存退出
[root@tomcat1 webapp1]# startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.ja
Tomcat started.

To your browser and enter the host machine: 192.168.18.148: 8080 can be seen: Welcome ACCP Web

Here Insert Picture Description

Nginx server CentOS 7-2 operations:

[root@localhost ~]# hostnamectl set-hostname nginx
[root@localhost ~]# su
[root@nginx ~]# yum install pcre-devel zlib-devel gcc gcc-c++ make -y
[root@nginx ~]# mkdir  /aaa
[root@nginx ~]# mount.cifs //192.168.10.189/rpm /aaa
Password for root@//192.168.10.189/rpm:  
[root@nginx ~]# cd /aaa/tomcat/
[root@nginx tomcat]# ls
apache-tomcat-7.0.54.tar.gz  jdk-8u91-linux-x64.tar.gz
apache-tomcat-8.5.16.tar.gz  nginx-1.12.0.tar.gz
jdk-7u65-linux-x64.gz        nginx-1.6.0.tar.gz
[root@nginx tomcat]# tar zxvf nginx-1.12.0.tar.gz -C /usr/local/
[root@nginx tomcat]# cd /usr/local/nginx-1.12.0/
[root@nginx nginx-1.12.0]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README
[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-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module
[root@nginx nginx-1.12.0]# make && make install
[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
#gzip  on;              #在下行插入以下内容
upstream tomcat_server {
          server 192.168.18.128:8080 weight=1;
          server 192.168.18.148:8080 weight=1;
}

location / {
    root   html;
    index  index.html index.htm;        #在下行插入
    proxy_pass http://tomcat_server;
}
#修改完成后按Esc退出插入模式,输入:wq保存退出
[root@nginx nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx nginx-1.12.0]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@nginx nginx-1.12.0]# nginx
[root@nginx nginx-1.12.0]# netstat -ntap | grep 80
tcp        0      0 0.0.0.0:80         0.0.0.0:*        LISTEN        8917/nginx: master  

verification:

1. Enter the browser in the host machine: 192.168.18.147 see: Welcome KGC Web

Here Insert Picture Description

#### 2 can once again set to be: Welcome ACCP Web

Here Insert Picture Description

Result: reaches Nginx as a reverse proxy server to access Tomcat pool!

Guess you like

Origin blog.51cto.com/14464303/2455939