NGINX反向代理 负载均衡 动静分离

1.Nginx负载均衡实现原理

Nginx实现负载均衡是通过反向代理实现

Nginx 反向代理:将Nginx接收到的请求转发给其它应用服务器处理

Nginx 负载均衡:通过反向代理实现,还可以将nginx接收到的请求转发给多个后端应用服务器处理

Nginx 动静分离:静态页面请求,由nginx自行处理并响应;动态页面请求,则nginx通过反向代理转发给后端应用服务器处理

3. Nginx 配置反向代理的主要参数
upstream 服务池名 {}
♢ 配置后端服务器池,比提供相应数据
proxy_pass  http://服务池名
♢ 配置将访问请求转发给后端服务器池的服务器处理

2.Nginx动静分离实现原理

1. 动静分离原理
服务端接收来自客户端的请求中。既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端。

2 Nginx 静态处理优势
• Nginx处理静态页面的效率远高于Tomcat的处理能力

• 若Tomcat的请求量为1000次,则Nginx的请求量为6000次

• Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M

• Nginx处理静态资源的能力是Tomcat处理的6倍

实验;

1.准备两台服务器,Nginx作为负载均衡器,Tomcat作为应用服务器

Nginx 服务器:192.168.73.110:80
Tomcat服务器2:192.168.73.100:8080  192.168.73.100:8081 192.168.73.100:8083

2.部署Nginx 负载均衡器

rz -E nigxn repo
再使用yum安装比较方便

3.部署一台tomcat多实例

1.修改tomcat主配置文件 server.xml 中的三个端口号 8080  8005  8009,每个实例要不一样
2.修改tomcat启动停止脚本 startup.sh  shutdown.sh ,添加环境变量 export TOMCAT_HOME  CATALINA_HOME  CATALINA_BASE 都指向每个实例各自的工作目录

4.在使用mkdir /usr/local/tomcat/webapps/xy101

创建动态文件.jsp$的动态文件 test.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>
~                          

在tomcat2 tocat3 中同理

5.

(1)在http配置块中使用upstream定义后端服务器列表名称和节点参数

  #配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
(2)在server配置块中使用location匹配用户请求的动态页面的URL路径,使用 proxy_pass 基于协议代理转发。

location ~ \.jsp$ {
   proxy_pass http://tomcat_server;
#配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理 
    proxy_set_header HOST $host;
#设置后端的Web服务器可以获取远程客户端的真实IP
   proxy_set_header x_Real_IP $remote_addr;
#把$remote_addr赋值给X-Real-IP,来获取源IP
   proxy_set_header X_Forwarded_For $proxy_add_x_forwarded_for;
  }
#在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来

然后重启nginx 测试

测试动静分离:

静态:分配给nginx服务器

动态:分配给tomcat服务器

 负载均衡: 不断测试刷新页面

实验二:

四层反向代理:基于 IP 和 端口 实现的代理转发(根据IP和端口来转发请求)

1.将web2的nginx服务器按照web1的设置一下

2.再加入一个nginx服务器作为负载均衡器192.168.73.130

(1)编译安装时需要添加 stream 四层代理模块  ./configure --with-stream

(2)在 http 配置块同层级,一般在 http 配置块上面添加 stream 配置块,在 stream 配置块里使用upstream定义后端服务器列表名称和节点参数以及使用server配置块定义监听端口和转发配置
3.验证:

静态页面:静态页面分配给nginx 因为有两个后端服务器列表刷新可以轮询

动态页面:动态页面访问有后面两个nginx服务器分配给后面的tomcat服务器处理 刷新也可以轮询

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx是一款强大的开源Web服务器软件,除了支持常规的Web服务器功能外,还可以用作正向代理、反向代理负载均衡以及动静分离的配置。 正向代理是指客户端通过代理服务器发送请求,然后由代理服务器转发到目标服务器,从而隐藏客户端的真实身份。在nginx中,可以通过配置修改proxy_pass指令来实现正向代理功能。 反向代理是指客户端发送请求到代理服务器,代理服务器再将请求转发到后端的服务器,然后将后端服务器的响应返回给客户端,客户端无法直接访问到后端服务器。在nginx中,可以通过修改proxy_pass指令来实现反向代理,并且可以使用负载均衡来分配请求到多个后端服务器。 负载均衡是指将请求分发到多个服务器上,以达到均衡负载的目的。在nginx中,可以使用upstream模块配置多个后端服务器,并通过配置proxy_pass和proxy_redirect实现请求的负载均衡nginx支持多种负载均衡算法,如轮询、IP哈希等。 动静分离是指将动态资源和静态资源分别部署在不同的服务器上,以提高系统性能和并发能力。在nginx中,可以通过配置location指令将动态请求和静态请求分别代理到不同的后端服务器或直接返回静态文件,从而实现动静分离。 总结来说,nginx通过配置实现了正向代理、反向代理负载均衡动静分离等功能,在提供Web服务的同时,能够提高系统的性能、并发能力和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值