最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 负载均衡中如何利用 include 配置将庞大的 upstream 集群抽离独立管理
时间:2026-08-17 12:32:49 编辑:袖梨 来源:一聚教程网
Nginx通过include指令将upstream块抽离至独立文件(如/etc/nginx/upstreams/*.conf)实现模块化管理,必须置于http{}块内引入,支持通配符、绝对/相对路径,配合nginx -t验证和reload热更新,提升可维护性与环境分治能力。
直接在主配置里堆砌大量 upstream 定义,会让 nginx.conf 越来越臃肿、难维护、易出错。用 include 把 upstream 集群抽离到独立文件,是生产环境的标准做法——既保持主配置干净,又支持按业务、环境或团队分治管理。
把 upstream 块单独写进外部文件
在 /etc/nginx/ 下新建专用目录和文件,比如:
-
/etc/nginx/upstreams/—— 存放所有 upstream 定义 -
/etc/nginx/upstreams/static.conf:静态资源集群 -
/etc/nginx/upstreams/api.conf:API 动态服务集群 -
/etc/nginx/upstreams/admin.conf:后台管理系统集群
每个文件只写一个或一组逻辑相关的 upstream,例如 static.conf 内容为:
upstream static_servers {server 192.168.1.10:80;server 192.168.1.11:80 weight=2;keepalive 32;}
注意:这些文件本身不包含 http{} 或任何外层块,只写纯 upstream 块,Nginx 会原样注入到所在位置。
在 http 块中用 include 引入
打开 /etc/nginx/nginx.conf,定位到 http { ... } 块内部(必须在 http 块内,不能在 events 或全局域),添加:
http {include /etc/nginx/mime.types;default_typeapplication/octet-stream;# 批量引入所有 upstream 定义include /etc/nginx/upstreams/*.conf;# 或按需单个引入(更可控)# include /etc/nginx/upstreams/static.conf;# include /etc/nginx/upstreams/api.conf;server {listen 80;location / {proxy_pass http://static_servers;}}}
路径支持通配符 *,也支持绝对路径和相对路径(相对路径以 nginx 配置根目录为基准)。
配合 reload 实现热更新与灰度切换
抽离后,修改某个 upstream 不再需要动主配置。只需:
- 编辑对应文件,比如改
/etc/nginx/upstreams/api.conf中的服务器地址或权重 - 运行
sudo nginx -t验证语法(Nginx 会自动加载 include 的内容) - 执行
sudo systemctl reload nginx生效,零中断
还可结合软链接做环境切换:建 upstreams-prod.conf 和 upstreams-staging.conf,用 ln -sf 切换当前生效的文件,适合多环境部署。
进阶:用变量 + map 实现动态 upstream 选择
如果想根据请求头、域名或参数决定走哪个 upstream,可在 include 文件中定义多个 upstream,再用 map 指令生成变量,最后在 proxy_pass 中引用:
# 在 http 块中(可放在 include 后面)map $host $backend_group {~^api. example.com$api_servers;~^static.example.com$static_servers;default api_servers;}server { location / { proxy_pass https://www.php.cn/link/093d559928d57fc466488f5176506e29; } }
这样就把“路由逻辑”和“服务器列表”彻底解耦,upstream 文件只管“有哪些机器”,map 和 location 管“什么时候用哪组”。
相关文章
- 小米路由器4a百兆和千兆的区别 08-17
- 算力消耗高、反复重绘太费钱?知漫剧永久角色资产降低制作成本 08-17
- 没想到这年头,做AI效果图的团队,还能融到数百万美元 08-17
- 免费学!重庆上新173门AI课程 面向全社会开放 08-17
- AI Agent从0到1定制开发 全栈/全流程/企业级落地实战 08-17
- 全球首富红眼All in,马斯克600亿收购Cursor,挤上ASI末班车 08-17