nginx是一款广泛使用的开源web服务器和反向代理服务器,它也可以作为正向代理服务器使用。在理解nginx的反向代理和正向代理的区别之前,我们首先需要了解这两种代理的基本概念。
先记核心口诀:
正向代理替「客户端」干活,反向代理替「服务端」干活

一、什么是正向代理(forward proxy)
核心定位
代理客户端,帮内网用户访问外网。
访问流程
客户端(你电脑) → nginx正向代理服务器 → 外网目标网站
关键特点
- 客户端知道代理存在:需要手动在浏览器/系统配置代理地址;
- 隐藏客户端真实ip:外网服务器只能看到代理ip,看不到你的本机ip;
- 部署在客户端侧:为局域网内上网设备服务。
典型用途
- 内网统一出口上网、校园网代理;
- 访问受限外网资源;
- 缓存外网资源、限速、过滤网址。
二、什么是反向代理(reverse proxy)
核心定位
代理服务端,对外统一入口,帮后端服务器接收用户请求。
访问流程
外网用户 → nginx反向代理 → 内网后端真实服务(tomcat/java/node/微服务)
关键特点
- 客户端完全无感知:用户以为nginx就是最终的网站服务器,无需任何配置;
- 隐藏后端真实服务器:对外只暴露nginx,内网服务ip、架构完全隐藏;
- 部署在服务器入口:作为网站/服务的网关。
典型用途
- 负载均衡(分发请求到多台后端服务器);
- 动静分离、接口转发、前后端分离;
- 统一ssl证书、防护后端服务、限流防攻击。
三、核心区别一览表
| 对比维度 | 正向代理 | 反向代理 |
|---|---|---|
| 代理对象 | 替客户端发起请求 | 替后端服务接收请求 |
| 客户端感知 | 需手动配置代理,知道有代理 | 无任何配置,完全无感 |
| 隐藏对象 | 隐藏客户端真实ip | 隐藏后端服务器ip/架构 |
| 网络位置 | 靠近用户/内网侧 | 靠近服务器/机房入口 |
| 访问方向 | 内网 → 外网 | 外网 → 内网服务 |
| 常用场景 | 上网代理、翻墙、内网出口 | 网站集群、负载均衡、网关转发 |
四、一句话极简总结
- 正向代理:我要上网,找代理帮我去访问别人,藏我自己;
- 反向代理:别人来访问我的网站,nginx挡在前面接待,藏我的后端服务器。
日常开发中 99% 用的都是 nginx 反向代理,正向代理很少用。
五、nginx作为正向代理和反向代理的使用
nginx可以作为正向代理:
- 配置正向代理: 在nginx中配置正向代理通常涉及到修改
http块中的proxy_pass指令,使其指向一个外部服务器的url。例如,你可以设置一个特定的url路径来通过nginx访问外部网站。 - 使用场景: 这在需要绕过某些网络限制或进行内容过滤时非常有用。例如,在办公室或学校网络中使用公共正向代理访问被封锁的网站。
nginx作为反向代理:
- 配置反向代理: 在nginx中配置反向代理通常涉及到在
server块中设置location指令,并使用proxy_pass指令指向内部服务器的地址。例如,你可以将所有到达特定端口的请求转发到内部的应用服务器。 - 使用场景: 这在负载均衡、ssl终止、缓存静态内容等方面非常有用。例如,一个网站可能有多个后端服务器,通过nginx的反向代理可以实现请求的分发和负载均衡。
六、总结
- 正向代理用于客户端访问受限资源。
- 反向代理用于服务器前的请求分发和管理。
nginx既可以作为正向代理也可以作为反向代理,这取决于你的具体需求和配置方式。通过适当的配置,你可以灵活地利用nginx来满足不同的网络和应用需求。
到此这篇关于nginx的反向代理和正向代理的区别解析的文章就介绍到这了,更多相关nginx反向代理和正向代理区别内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论