Nginx正向代理
正向代理: 是一种代理客户端访问互联网的方式。
当客户端无法直接访问目标资源时(例如目标被屏蔽、限速、不可达等),可以通过一个中间服务器——正向代理服务器。
如下图所示:
工作流程:
客户端 → 正向代理(Nginx) → 目标服务器
来代替客户端去访问目标服务器,然后把结果返回给客户端。
比如:国内想访问 www.google.com
,但直连被屏蔽。
于是你配置了一个部署在国外的 Nginx 正向代理服务器,你的浏览器请求先发送到这个代理服务器,然后由它再去访问 google.com
,最后再把页面内容返回给你。
Nginx反向代理
反向代理是一种代理服务端响应的方式,反向代理位于客户端和后端服务器之间。
客户端不知道真正的目标服务器是谁,它只与反向代理服务器交互。
反向代理服务器接收客户端的请求,然后将请求转发到后端服务器。
如下图所示:
反向代理 就像你访问一个网站,实际上网站背后有很多服务器,中间人(代理服务器)帮你挑选和分发请求,你以为是一个服务,实际后面隐藏了很多机器。
工作流程,如下:
客户端 → 反向代理(Nginx) → 后端服务器集群
比如:Nginx 强大的反向代理能力被广泛用于微服务架构、负载均衡和网关层。
upstream backend_server { server 192.168.1.101; server 192.168.1.102; } server { listen 80; location / { proxy_pass http://backend_server; } }
Nginx作为反向代理,主要使用proxy_pass
和upstream
指令。
upstream
指令用于定义后端服务器组,proxy_pass
指令用于将客户端请求转发到这些后端服务器。
两者的核心区别
1.代理对象不同
正向代理代理客户端。
反向代理代理服务器。
2.隐藏对象不同
正向代理隐藏客户端IP。
反向代理隐藏服务器IP。
3.使用场景不同
正向代理主要用于客户端的网络访问控制。
反向代理主要用于服务器端的性能和安全优化。
4.部署位置不同
正向代理位于客户端网络出口,反向代理位于服务端入口。