推广 热搜:   公司  快速  企业  中国  设备    上海  行业  未来 

Nginx详解 五:反向代理

   日期:2024-11-03     移动:http://dfvalve.xrbh.cn/mobile/quote/6820.html
文章目录
  • 1. 正向代理和反向代理
  • 1.1 正向代理概述
  • 1.1.1 什么是正向代理
  • 1.1.2 正向代理的作用
  • 1.1.3 正向代理的基本格式
  • 1.2 反向代理概述
  • 1.2.1 什么是反向代理
  • 1.2.2 反向代理可实现的功能
  • 1.2.3 反向代理的可用模块
  • 2. 配置反向代理
  • 2.1 反向代理配置参数
  • 2.1.1 proxy_pass
  • 2.1.2 其他参数
  • 3. 示例
  • 3.1 反向代理单台web服务器
  • 3.2 指定主机实现反向代理动静分离
  • 3.3 缓存功能
  • 3.4 实现反向代理客户端IP透传
  • 3.4.1 基本原理
  • 3.4.2 一级代理
  • 3.4.3 多级代理
  • 3.5 实现反向代理负载均衡
  • 3.5.1 基本原理
  • 3.5.2 常见配置参数
  • 3.5.2 调度算法
  • 3.5.2.1 轮询(Round Robin
  • 3.5.2.2 轮询权值(Weighted Round Robin
  • 3.5.2.3 ip_hash
  • 3.5.2.4 fair(第三方
  • 3.5.2.5 url_hash(第三方
  • 3.5.2.6 least_conn(最小连接数
  • 3.5.2.7 最少响应时间(Least Time
  • 3.6 示例
  • 3.6.1 使用轮询算法实现负载均衡
  • 3.6.2 使用加权轮询算法实现负载均衡

Nginx详解 五:反向代理

1.1 正向代理概述

1.1.1 什么是正向代理

正向代理代理的是客户端

正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端

1.1.2 正向代理的作用
  • 为在防火墙内的局域网客户端提供访问Internet的途径
  • 可以使用缓冲特性减少网络使用率
  • 访问受地理位置限制的网络
  • 使用代理后会隐藏真实的IP地址
1.1.3 正向代理的基本格式

1.2 反向代理概述

1.2.1 什么是反向代理

反向代理代理的是服务端

反向代理(reverse proxy,指的是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的一种方式
客户端不直接与后端服务器进行通信,而是与反向代理服务器进行通信,隐藏了后端服务器的 IP 地址

1.2.2 反向代理可实现的功能

反向代理的主要作用是提供负载均衡和高可用性。

负载均衡:Nginx可以将传入的请求分发给多个后端服务器,以平衡服务器的负载,提高系统性能和可靠性。

缓存功能:Nginx可以缓存静态文件或动态页面,减轻服务器的负载,提高响应速度。

动静分离:将动态生成的内容(如 PHP、Python、Node.js 等)和静态资源(如 HTML、CSS、Javascript、图片、视频等)分别存放在不同的服务器或路径上。

多站点代理:Nginx可以代理多个域名或虚拟主机,将不同的请求转发到不同的后端服务器上,实现多个站点的共享端口。

1.2.3 反向代理的可用模块

2.1 反向代理配置参数

2.1.1 proxy_pass
2.1.2 其他参数

3.1 反向代理单台web服务器

客户机访问代理服务器

3.2 指定主机实现反向代理动静分离

3.3 缓存功能

反向代理可以缓存静态资源。

当客户端再次请求访问相同资源时,反向代理可以直接返回缓存中的响应,无需二次请求,减少对后端服务器的请求压力,并加快响应速度。

清理缓存

3.4 实现反向代理客户端IP透传

3.4.1 基本原理

反向代理客户端IP透传是指在使用反向代理服务器时,将客户端的真实IP地址传递给后端服务器。

这可以通过一些特定的 如 等HTTP 头字段来实现 头字段。

当请求经过反向代理服务器时,代理服务器会将客户端的真实IP地址添加到 XFF 头字段中,然后转发给后端服务器。

3.4.2 一级代理
3.4.3 多级代理

3.5 实现反向代理负载均衡

Nginx 可以基于模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能

3.5.1 基本原理

NGINX的负载均衡原理是基于反向代理和事件驱动的机制。
当客户端发送请求时,NGINX作为反向代理服务器接收请求,并根据配置的将请求转发到后端的多个服务器上,实现负载均衡。

3.5.2 常见配置参数
3.5.2 调度算法
3.5.2.1 轮询(Round Robin

每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。

3.5.2.2 轮询权值(Weighted Round Robin

weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3.5.2.3 ip_hash

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

3.5.2.4 fair(第三方

比 weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间 来分配请求,响应时间短的优先分配。
Nginx本身不支持fair,如果需要这种调度算法,则必须安装模块。

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

3.5.2.5 url_hash(第三方

按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。
Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

3.5.2.6 least_conn(最小连接数

根据后端服务器的连接状况进行分配客户请求,连接最少的服务器将被有限分配客户端请求。

本文地址:http://dfvalve.xrbh.cn/quote/6820.html    迅博思语资讯 http://dfvalve.xrbh.cn/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号