Nginx中正向代理,反向代理,负载均衡应用场景分析
作者:小熊officer
文章介绍了nginx中反向代理、正向代理和负载均衡的概念,通过实际场景解释了它们的工作原理和特点,感兴趣的朋友跟随小编一起看看吧
1. 🔄 反向代理
情景:
顾客想买手机,他走到购物中心前台问:"手机店在哪?"
前台说:"您稍等,我帮您联系",然后前台去后面的手机店取来手机交给顾客。
技术解释:
- 顾客不知道后面有多少家手机店,也不知道具体是哪家为他服务
- 前台(Nginx)代表后面的店铺(服务器)为顾客服务
- 客户不知道真正的服务提供者
# Nginx 配置示例
server {
listen 80;
server_name shopping-mall.com;
location /phone-shop/ {
# 将请求转发给后端的手机店
proxy_pass http://real-phone-shop:8080;
}
location /clothing-shop/ {
# 将请求转发给后端的服装店
proxy_pass http://real-clothing-shop:8081;
}
}特点: 隐藏真实服务器,保护后端,统一入口
2. 🎯 正向代理
情景:
顾客想访问一个被限制的国外网站(比如某些外网),但他无法直接访问。
于是他找了一个"代理服务"(比如VPN),让代理帮他去访问那个网站,然后把内容传回来。
技术解释:
- 顾客主动使用代理
- 网站不知道真正的访问者是谁,只知道代理在访问它
- 服务器不知道真正的客户端
# 正向代理配置(Nginx 也可以做,但较少用)
server {
listen 3128; # 代理端口
resolver 8.8.8.8;
location / {
# 允许客户端通过此服务器访问外部网络
proxy_pass http://$http_host$request_uri;
}
}特点: 突破访问限制,隐藏客户端身份
3. ⚖️ 负载均衡
情景:
购物中心有三家一模一样的手机店(卖同样商品)。
前台看到很多顾客都要买手机,于是:
- 把第一个顾客指引到1号店
- 把第二个顾客指引到2号店
- 把第三个顾客指引到3号店
- 把第四个顾客又指引到1号店...
技术解释:
- 将大量请求分配到多个相同的服务器上
- 避免单个服务器过载
- 提高整体处理能力
# Nginx 负载均衡配置
upstream phone_shops {
# 定义三家手机店(后端服务器)
server 192.168.1.101:8080 weight=3; # 权重3,处理更多请求
server 192.168.1.102:8080 weight=2; # 权重2
server 192.168.1.103:8080 weight=1; # 权重1
}
server {
listen 80;
server_name shopping-mall.com;
location /phone-shop/ {
# 将请求负载均衡到三家店
proxy_pass http://phone_shops;
}
}特点: 分摊压力,提高可用性,扩展性
🎯 一句话总结
| 概念 | 谁被代理? | 为谁服务? | 一句话理解 |
|---|---|---|---|
| 反向代理 | 服务器 | 客户端 | "帮服务器接客" - 客户找代理,代理找真服务器 |
| 正向代理 | 客户端 | 客户端 | "帮客户跑腿" - 客户让代理去访问目标 |
| 负载均衡 | 多个服务器 | 系统整体 | "客流分配员" - 把客户平均分给多个服务点 |
🔧 实际应用场景
反向代理常见用途:
- 网站入口网关
- API 网关
- SSL 终端(HTTPS解密)
正向代理常见用途:
- 公司内网代理
- 科学上网工具
- 内容过滤
负载均衡常见用途:
- 电商网站大促时
- 高流量应用
- 微服务架构
到此这篇关于Nginx中正向代理,反向代理,负载均衡的文章就介绍到这了,更多相关nginx正向代理,反向代理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
