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
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
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
#### 2 can once again set to be: Welcome ACCP Web