蓝易云cdn:upstream的两种配置方式
Linux命令
蓝易云cdn:upstream的两种配置方式
2026-02-26 00:01
可以,upstream 在 Nginx 里你可以从实战角度理解成 两种配置方式:直接转发(不单独写 upstream 块) 和 定义 upstream 服务器组后再转发。前者简单,后者更适合生产环境扩展。⚙️ 方式一:直接在 location 里写 proxy_pass(适合单后端、快速上线)
可以,upstream 在 Nginx 里你可以从实战角度理解成 两种配置方式:直接转发(不单独写 upstream 块) 和 定义 upstream 服务器组后再转发。前者简单,后者更适合生产环境扩展。⚙️
方式一:直接在 location 里写 proxy_pass(适合单后端、快速上线)
server {
listen 80;
server_name _;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
这种方式的特点 ✅
- 配置最短,维护成本低
- 适合单台后端服务(如一个 Java、Node、PHP-FPM 网关)
- 改起来快,但后端一多就容易乱
每段关键解释
proxy_pass http://127.0.0.1:8080;:直接把请求转发到指定后端Host / X-Real-IP / X-Forwarded-For:把原始域名和真实客户端 IP 传给后端,方便日志、鉴权、风控
Nginx 官方文档明确支持在 location 中直接使用 proxy_pass 转发到目标服务器。(nginx.org)
方式二:先定义 upstream 组,再在 proxy_pass 中引用(适合生产)
http {
upstream backend_app {
server 10.0.0.11:8080;
server 10.0.0.12:8080;
# server 10.0.0.13:8080 backup; # 备用节点(可选)
keepalive 32;
}
server {
listen 80;
server_name _;
location / {
proxy_pass http://backend_app;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
这种方式的特点 🚀
- 适合多台后端做负载分担
- 扩容方便(加一行
server即可) - 可叠加权重、备机、失败重试等策略(后续升级空间大)
每段关键解释
upstream backend_app { ... }:定义一个后端服务器组server 10.0.0.11:8080;:组内节点keepalive 32;:复用到后端的连接,减少频繁建连开销proxy_pass http://backend_app;:把请求转发给这个组,而不是某台固定机器
Nginx 官方 ngx_http_upstream_module 说明了 upstream 用于定义可被 proxy_pass 等指令引用的服务器组。(nginx.org)
怎么选(务实版)
- 单服务 / 测试环境 / 临时代理:用方式一,快
- 多服务 / 容器编排 / 高并发业务:用方式二,更稳、更易扩展
一句话结论
“直接 proxy_pass”是轻量方案,upstream 服务器组是生产方案。
你现在如果在做 Docker 或蓝易云业务代理入口,建议优先按 方式二 做,后面加节点、做高可用时不会返工。😄
顺手提醒一个常见坑:upstream 是放在 http 上下文里的,不是随便放在 server 或 location 里,不然 Nginx 会直接报配置错误。
标签:
- 蓝易云cdn
- upstream