Nginx+Tomcat高可用负载均衡群集——动静分离

Tomcat概述 Tomcat简介 Tomcat重要目录 Nginx应用 Nginx是一款非常优秀的HTTP服务器软件 Nginx负载均衡实现原理 Nginx配置反向代理的主要参数 Nginx动静分离实现原理 Nginx静态处理优势 生产环境实操 实验设计 一、部署Tomcat【1】 1.安装JDK环境 2.安装Tomcat服务 3.测试Tomcat服务器 4.定义一个Tomcat虚拟主机 5.访问测试页 二、部署Tomcat【2】 1.安装JDK环境 2.安装Tomcat服务 3.测试Tomcat服务器 4.定义一个Tomcat虚拟主机 5.访问测试页 三、编译Nginx服务 2.创建运行账户 3.编译安装NGINX 4.优化路劲,并启动测试 5.设置系统服务 6.修改nginx.comf配置 7.查看静态资源目录内图片 8.测试动静分离及负载均衡

Tomcat概述

Tomcat简介

    最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发 安装Tomcat后,安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件

Tomcat重要目录

目录名 作用
bin 存放启动和关闭Tomcat脚本
conf 存放Tomcat不同的配置文件
doc 存放Tomcat文档
lib 存放Tomcat运行需要的库文件
logs 存放Tomcat执行时的LOG文件
src 存放Tomcat的源代码
webapps Tomcat的主要Web发布目录
work 存放jsp编译后产生的class文件

Nginx应用

Nginx是一款非常优秀的HTTP服务器软件

支持高达50 000个并发连接数的响应 拥有强大的静态资源处理能力 运行稳定 内存、CPU等系统资源消耗非常低 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力

Nginx负载均衡实现原理

Nginx实现负载均衡是通过反向代理实现
反向代理原理:
在这里插入图片描述

Nginx配置反向代理的主要参数

upstream服务池名{},配置后端服务器池,以提供响应数据 proxy_pass http:/服务池名, 配置将访问请求转发给后端服务器池的服务器处理

Nginx动静分离实现原理

动静分离原理

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
在这里插入图片描述

Nginx静态处理优势

Nginx处理静态页面的效率远高于Tomcat的处理能力 若Tomcat的请求量为1000次,则Nginx的请求量为6000次 Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M Nginx处理静态资源的能力是Tomcat处理的6倍

生产环境实操

实验设计

    要求部署两台后端Tomcat服务器 为了进行测试,搭建两个内容不同的网站 Tomcat著与网站搭建步骤
关闭firewall防火墙 安装JDK,配置JAVA环境 安装配置Tomcat 更改到/web/webapp1/路径下 创建/web/webapp1目录,修改server.xml,将网站文件目录 /web/webapp1/下建立测试页面index.jsp,并进行测试
    在Nginx服务器上安装Nginx,反向代理两个Tomcat站点,并实现负载均衡
关闭Firewalld防火墙 安装Nginx依赖软件包 解压并编译安装Nginx 配置nginx.conf,添加location静态页面处理及添加 upstream配置段与proxy_pass 检测配置文件与启动Nginx 测试负载均衡、动静分离效果

一、部署Tomcat【1】

1.安装JDK环境

[root@localhost ~]# tar xf jdk-8u144-linux-x64.tar.gz -C /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# cp -rv jdk1.8.0_144/ /usr/local/java
[root@localhost opt]# vi /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
[root@localhost opt]# source /etc/profile
[root@localhost opt]# java -version
java version "1.8.0_144"
……省略部分

2.安装Tomcat服务

[root@localhost ~]# tar vxf apache-tomcat-8.5.23.tar.gz -C /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# mv apache-tomcat-8.5.23/ /usr/local/tomcat8
[root@localhost opt]# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup 
[root@localhost opt]# ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
[root@localhost opt]# tomcatup 
……省略部分
Tomcat started.
[root@localhost opt]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 ::: *                    LISTEN      77010/java      

3.测试Tomcat服务器

在这里插入图片描述

4.定义一个Tomcat虚拟主机

[root@localhost tomcat8]# vim /usr/local/tomcat8/conf/server.xml
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/webapp1" path="" reloadable="false" >    //插入这两行配置
        </Context>
[root@localhost tomcat8]# mkdir -pv /web/webapp1      //创建网页目录
[root@localhost tomcat8]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test1 page</title>
        </head>
        <body>
        <h1>
                <% out.println("动态页面 1,http://www.TOM1.com");%>
        </h1>
        </body>
        <body>
                <div>静态页面的图片 1</div><br><img src="123.jpg">
				<br><h1>
                床前看月光,<br>
                疑是地上霜。<br>
                抬头望山月,<br>
                低头思故乡。<br>
				</h1>
        </body>
</html>
[root@localhost tomcat8]# tomcatdown 
[root@localhost tomcat8]# tomcatup 

5.访问测试页

在这里插入图片描述

二、部署Tomcat【2】

1.安装JDK环境

[root@localhost ~]# tar xf jdk-8u144-linux-x64.tar.gz -C /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# cp -rv jdk1.8.0_144/ /usr/local/java
[root@localhost opt]# vi /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
[root@localhost opt]# source /etc/profile
[root@localhost opt]# java -version
java version "1.8.0_144"
……省略部分

2.安装Tomcat服务

[root@localhost ~]# tar vxf apache-tomcat-8.5.23.tar.gz -C /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# mv apache-tomcat-8.5.23/ /usr/local/tomcat8
[root@localhost opt]# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup 
[root@localhost opt]# ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
[root@localhost opt]# tomcatup 
……省略部分
Tomcat started.
[root@localhost opt]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 ::: *                    LISTEN      77010/java      

3.测试Tomcat服务器

在这里插入图片描述

4.定义一个Tomcat虚拟主机

[root@localhost tomcat8]# vim /usr/local/tomcat8/conf/server.xml
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/webapp1" path="" reloadable="false" >
        </Context>
[root@localhost tomcat8]# mkdir -pv /web/webapp1
[root@localhost tomcat8]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test2 page</title>
        </head>
        <body>
        <h1>
                <% out.println("动态页面2,http://www.TOM1.com");%>
        </h1>
        </body>
        <body>
                <div>静态页面的图片 2</div><br><img src="123.jpg">
				<br><h1>
                床前看月光,<br>
                疑是地上霜。<br>
                抬头望山月,<br>
                低头思故乡。<br>
				</h1>
        </body>
</html>
[root@localhost tomcat8]# tomcatdown 
[root@localhost tomcat8]# tomcatup 

5.访问测试页

在这里插入图片描述

三、编译Nginx服务

### 1.安装环境
[root@localhost opt]# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl \
zlib-devel 

2.创建运行账户

[root@localhost ~]# groupadd www
[root@localhost ~]#  useradd -g www www -s /bin/false

补充:/bin/false是最严格的禁止login选项,一切服务都不能用。
/sbin/nologin只是不允许login系统

3.编译安装NGINX

[root@localhost ~]#  tar xzvf nginx-1.15.9.tar.gz -C /opt
[root@localhost ~]# cd /opt/nginx-1.15.9/
[root@localhost nginx-1.15.9]# ./configure \
--prefix=/usr/local/nginx \
--user=www \
--group=www \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module
[root@localhost nginx-1.15.9]# make -j3 && make install 

4.优化路劲,并启动测试

[root@localhost nginx-1.15.9]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.15.9]# 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@localhost nginx-1.15.9]# nginx
[root@localhost nginx-1.15.9]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      14763/nginx: master 

5.设置系统服务

[root@localhost nginx-1.15.9]# yum -y install psmisc
[root@localhost nginx-1.15.9]# killall -9 nginx
[root@localhost nginx-1.15.9]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/ki11 -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target  
[root@localhost nginx-1.15.9]# systemctl enable nginx.service
[root@localhost nginx-1.15.9]# systemctl start nginx.service
[root@localhost nginx-1.15.9]# systemctl status nginx.service
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-09-25 20:08:41 CST; 6s ago
  Process: 14822 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, sta

6.修改nginx.comf配置

[root@localhost img]# vim /usr/local/nginx/conf/nginx.conf
http {
……省略部分
upstream tomcat_server {        //在http{}区域内插入这4行配置
        server 192.168.100.22:8080 weight=1;
        server 192.168.100.23:8080 weight=1;
        }
###docBase:web 应用的文档基准目录 
###reloadable 设置监视"类"是否变化 
###path="" 设置默认"类"
    server {
        location ~ .*.jsp$ {             //在server{}区域内插入以下配置
                proxy_set_header HOST $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Client-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://tomcat_server;
        }
 
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
                root /usr/local/nginx/html/img;
                expires 30d;
        }

[root@localhost nginx-1.15.9]# vim /usr/local/nginx/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<title>静态页面</title>
<style>
	body {
		width: 35em;
		margin: 0 auto;
		font-family: Tahoma, Verdana, Arial, sans-serif;
	}
</style>
</head>
<body>
<h1>静态页面</h1>
<p>这是个静态页面</p>
</body>
</html>

7.查看静态资源目录内图片

[root@localhost nginx-1.15.9]# mkdir /usr/local/nginx/html/img 
[root@localhost nginx-1.15.9]# cd /usr/local/nginx/html/img
[root@localhost img]# ls
123.jpg

8.测试动静分离及负载均衡

在这里插入图片描述
在这里插入图片描述

栏目
728_90 cn stocks