文章目录
- 一.Nginx应用
- 1.1Nginx负载均衡实现原理
- 1.2Nginx动静分离实现原理
- 二.Nginx+Tomcat负载均衡、动静分离(七层实例)
一.Nginx应用
Nginx是一款非常优秀的HTTP服务软件
- 支持高达50000个并发连接数的响应
- 拥有强大的静态资源处理能力
- 运行稳定
- 内存、CPU等系统资源消耗非常低
目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力
1.1Nginx负载均衡实现原理
Nginx配置反向代理的主要参数
- upstream 服务池名 { }
- 配置后端服务器池,以提供响应数据
- proxy_pass http://服务池名
- 配置将访问请求转发给后端服务器池的服务器处理
1.2Nginx动静分离实现原理
动静分离原理:
服务端接收来自客户端的请求中,既有静态资源也有动态资源,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
Nginx静态处理优势:
- Nginx处理静态页面的效率远高于Tomcat的处理能
- 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
- Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
- Nginx处理静态资源的能力是Tomcat处理的6倍
二.Nginx+Tomcat负载均衡、动静分离(七层实例)
Nginx 服务器:192.168.174.75
Tomcat服务器1:192.168.174.76:8080
Tomcat服务器2:192.168.174.74:8080 192.168.174.74:8081
配置Tomcat服务器1:
vim index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test3 page</title>
</head>
<body>
<% out.println("JSP动态页面 3");%>
</body>
</html>
~
配置Tomcat服务器2:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("JSP动态页面 1");%>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("JSP动态页面 2");%>
</body>
</html>
配置Nginx 服务器:
vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
#定义后端服务器组的名称和节点配置
upstream backend_server {
server 192.168.174.74:8080 weight=1;
server 192.168.174.74:8081 weight=1;
server 192.168.174.76:8080 weight=1;
}
#使用location匹配用户发来的.jsp动态页面请求给后端服务器组
location ~* .*\.jsp$ {
proxy_pass http://backend_server;
#在转发报文里添加头部记录真实的客户端地址
proxy_set_header HOST $host;
proxy_set_header X-REAL-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
测试静态页面效果: