Nginx+Tomcat负载均衡、动静分离群集
一、nginx实现负载均衡原理
Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。
但是不是把所有的web请求转发,而是将静态页面请求Nginx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。
Nginx服务器
1、首页使用精准匹配
2、静态页面使用正则匹配自己处理
3、动态页面使用正则匹配jsp结尾的请求,使用proxy_pass转发给Tomcat服务器
1.Nginx静态处理优势
●Nginx处理静态页面的效率远高于Tomcat的处理能力
●若Tomcat的请求量为1000次,则Nginx的请求量为6000次
●Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3 .6M
●Nginx处理静态资源的能力是Tomcat处理的6倍
2.Nginx动静分离原理
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源有Nginx提供服务,动态资源Nginx转发至后端。
3.nginx配置反向代理参数
配置后端服务器池,以提供响应数据
upstream 服务器名 {}
配置将访问请求转发给后端服务器池名
proxy_pass http://服务器名
二、群集部署
1.环境配置
主机 | 操作系统 | IP地址 | 所需软件 |
---|---|---|---|
Nginx Server | CentOS7 | 192.168.184.10 | nginx-1.12.0.tar.gz |
Tomcat Server1 | CentOS7 | 192.168.184.20 | apache-tomcat-9.0.16.tar.gz、jdk-8u201-linux-x64.rpm |
Tomcat Server2 | CentOS7 | 192.168.184.30 | apache-tomcat-9.0.16.tar.gz、jdk-8u201-linux-x64.rpm |
2.部署Nginx负载均衡器
2.1关闭防火墙和安全防护,把nginx安装包移动到opt目录下
安装依赖包
创建运行用户
编译安装
优化路径
添加Nginx系统服务
赋予权限并开启服务
3.部署2台Tomcat 应用服务器
4.nginx server 配置
#Tomcat1 server 配置
mkdir /usr/local/tomcat/tomcat1/webapps/test
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>
---------------------------
vim /usr/local/tomcat/tomcat1/conf/server.xml
#164行一下插入
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/tomcat1/webapps/test" path="" reloadable="true">
</Context>
</Host>
-----------------------------
#Tomcat2 server 配置
mkdir /usr/local/tomcat/tomcat2/webapps/test
vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>
---------------------------
vim /usr/local/tomcat/tomcat2/conf/server.xml
#164行一下插入
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/tomcat2/webapps/test" path="" reloadable="true">
</Context>
</Host>
说明由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置
--------------------
#修改配置后重新启动下tomcat服务