什么是反向代理服务器如何配置反向代理服务器

什么是反向代理服务器如何配置反向代理服务器,第1张

反向代理服务器是运行有反向代理程序的计算机,通过反向代理,可以绕开端口限制,将一个URL转发到另一个URL,解决80端口问题等。目前比较成熟的开放的反向代理应用有nginx和nat123。ngnix是单纯的反向代理,可以利用nginx自行搭建反向代理服务,不少运营商甚至拿来包装成自己的界面,来运营。nat123是综合了NAT和反向代理,一般用户可以直接用nat123提供的反向代理服务,无需自己再搭建。

客户端 A,ip为 A_ip,端口为 A_random_port

反向代理 B,ip 为 B_ip ,监听端口为固定的 443

后端 C,ip 为 C_ip ,监听端口为固定的 443

以一条反向代理连接为例,链路为:

A_ip: A_random_port ----- B_ip:443 ----- B_ip:B_random_port ---- C_ip:443

A:A_random_port ---- B1:443 ---- B2:B_random_port ---- C:443

B1 和B2 ip 相同,监听的端口不同

B1 监听固定端口443,B2监听的是一个随机端口

具体一点:

192.168.1.101:12345 <----> 192.168.1.102:443 <---->192.168.1.102:45678 <--->192.168.1.103:443

A是纯粹的客户端 ;B既作为A的服务端,又作为C的客户端;C纯粹的服务端。

B 作为 C的客户端,发起socket连接时,会向反向代理服务器内核申请注册一个空闲的随机端口。

A:A_random_port ---- B1:443 和 B2:B_random_port ---- C:443 这两段链路socket好理解。

但是 B1:443 ---- B2:B_random_port 这段链路 nginx反向代理 是怎么实现的?

对nginx来说就是同一块内存,后面的链接的直接从前面那段链接的结尾的内存地址开始读。

首先上下游都建立好tcp链接,然后上游收到一个报文后会把报文头去掉,把payload临时存到一个地方,然后有个指针指向该内存,接着就会构筑往后发送的报文头,从该指针获取内容,拼接成一个往后发的报文,然后发出去。

nginx中两个模块有proxy_pass指令,用于反向代理配置项,分别是:

ngx_http_proxy_module

ngx_stream_proxy_module

ngx_http_upstream_module

nginx + keepalived,实现反向代理的高可用

用户公网IP:随机端口 ----> www.example.com:20080----(NAT)-- >outer_nginx_vip:20080 ---->nginx01_ip:随机端口 ----->upstream:20080

跟没有vip 的代理链路比,outer_nginx_vip:20080 ---->nginx01_ip:随机端口 这段链路ip有了变更,跟后端交互时并不是使用物理nginx01_ip,而是使用虚拟的outer_nginx_vip,这跟keepalived的网络实现有关,当然此处outer_nginx_vip 和nginx01_ip 是同一个mac地址。

tcp四次挥手状态 TIME_WAIT

https://www.jianshu.com/p/3658730d76d7

How to view and edit the ephemeral port range on Linux?

https://stackoverflow.com/questions/28573390/how-to-view-and-edit-the-ephemeral-port-range-on-linux

nginx使用proxy_bind负载tcp socket,解决代理端口耗尽

https://b.sundayle.com/nginx-proxy-65535-port

如何解决使用nginx作为反向代理端口耗尽问题?

https://blog.csdn.net/michaelwoshi/article/details/120170134

Overcoming Ephemeral Port Exhaustion in NGINX and NGINX Plus

https://www.nginx.com/blog/overcoming-ephemeral-port-exhaustion-nginx-plus


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/573943.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-04
下一篇2023-07-04

发表评论

登录后才能评论

评论列表(0条)

    保存