Nginx+Tomcat负载均衡、动静分离群集

一、Tomcat重要目录

  1. bin:存放启动和关闭Tomcat脚本
  2. conf:存放Tomcat不同的配置文件
  3. doc:存放Tomcat文档
  4. lib:存放Tomcat运行需要的库文件
  5. logs:存放Tomcat执行时的LOG文件
  6. src:存放Tomcat的源代码
  7. webapps:Tomcat的主要web发布目录
  8. work:Tom存放jsp编译后产生的

二、Nginx应用介绍

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

三、Nginx负载均衡实现原理

  • Nginx配置反向代理的主要参数
  1. upstream 服务器池名{ }

    配置后端服务器池,以提供响应数据

  2. proxy_pass http://服务池名

    配置将访问请求转发给后端服务器池的服务器处理

  • 动静分离原理

    服务端接受来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端

  • Nginx静态处理优势

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

四、实验:Nginx+Tomcat负载均衡、动静分离

  • 实验环境:VMware Workstation 15.5、Xshell6、Centos7.6、jdk-8u91-linux-x64、apache-tomcat-8.5.16、nginx-1.12.2
  • 实验设备及IP规划:Nginx作为负载均衡器,Tomcat作为Web应用服务器
服务器 IP
Nginx负载均衡器 192.168.50.133
Tomcat-Webserver1 192.168.50.134
Tomcat-Webserver2 192.168.50.135
  • 本次实验所用软件包下载地址:链接:https://pan.baidu.com/s/1LnjE-R-qpHAqoky8qiDdcg
    提取码:odai
  • 实验步骤

首先在负载均衡器器上安装Nginx,其他两台服务器安装Tomcat作为Webserver,安装及部署流程请参考前文

1、现在开始Nginx负载均衡器上做动静分离,编辑配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf     ## 编辑nginx配置文件

在server段下插入以下内容:

location ~.*.jsp$ {
   proxy_pass http://192.168.50.134:8080;    ## 这里的IP是tomcat节点1的地址
   proxy_set_header Host $host;
}

2、创建静态页面

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>

3、重启nginx服务

service nginx restart

4、在浏览器上输入地址进行访问可以看到刚才写入的页面

http://192.168.50.133

wiww7D.md.jpg
5、接着在tomcat节点1上做动静分离

cd /usr/local/tomcat/webapps/
mkdir test     ## 新建站点目录
cd test/
vim index.jsp    ## 编辑站点页面

写入以下内容:
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面</title>
</head>
<body>
<div>动态页面</div>
</body>
</html>

6、重启Tomcat服务

Tomcat:shutdown.sh

7、在浏览器中访问负载均衡器的IP可以看到Tomcat节点1上的页面

http://192.168.50.133/test/index.jsp

wiwanK.jpg
8、下面进行图片动静分离的配置,首先在tomcat1上的页面中插入一张图片

vim /usr/local/tomcat/webapps/test/index.jsp    ## 编辑站点页面

<img src="cat.jpg">       ## 插入图片

8、编辑Nginx配置文件

vim /usr/local/nginx/conf/nginx.conf    ## 编辑nginx配置文件

在server段中插入以下内容:
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {    ## 当遇到这些扩展名文件为结尾时
   root html;      ## 在自己站点中找相应资源
   expires 30d;    ## 客户端浏览器缓存时间30天
}

9、创建站点目录并上传图片

mkdir /usr/local/nginx/html/test     ## 创建站点目录
cd /usr/local/nginx/html/test        ## 进入test目录
将图片cat.jpg上传到该目录下

10、重启nginx服务

service nginx restart

11、访问tomcat1上的网页,可以看到刚才在nginx上放入的图片

http://192.168.50.133/test/index.jsp

wiwd0O.jpg
12、最后做Nginx与Tomcat的反向代理,首先创建一个新的web目录

mkdir -pv /web/webapp1     ## 创建站点目录

vim /web/webapp1/index.jsp      ## 编辑站点页面

写入以下内容:
<%@ page language="java" import="jave.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Test 1 Web");%>
</body>
</html>

13、编辑并修改tomcat1上的配置文件

vim /usr/local/tomcat/conf/server.xml     ## 编辑tomcat配置文件

在150行后插入以下内容:
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>

PS:
docBase:web应用的文档基准目录
reloadable:设置监视“类”是否变化
path=“”设置默认“类”

14、重启tomcat服务

shutdown.sh     ## 关闭
startup.sh      ## 开启

另一台Tomcat2节点服务器上配置同上,只需要将步骤12的内容即可

<% out.println("Test 1 Web");%>    ## 将1替换成其他比如说2即可

15、在nginx负载均衡器上还要继续进行配置,编辑Nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

在#gzip on;下面插入:

upstream tomcat_server {
   server 192.168.50.135:8080 weight=1;
   server 192.168.50.136:8080 weight=1;
}

在location / {字段下插入:
proxy_pass http://tomcat_server;      ## 在第三个location中添加这一行即可【注意:要以分号结尾】

16、在浏览器中访问nginx负载均衡器发现可以显示tomcat1与2的页面

http://192.168.50.133/     ## 多刷新几次可以发现是轮询访问

wiwNX6.jpg

wiwt6x.jpg

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/108395143