使用 include 将标准反向代理配置抽成独立文件,可提升 nginx 配置的清晰度、复用性与可维护性;通过新建 proxy-common.conf 统一管理头部设置与超时等通用逻辑,并在 server 或 location 块中引入,避免重复、便于集中维护。

用 include 把标准反向代理配置抽成独立文件,是让 Nginx 配置更清晰、可复用、易维护的关键做法。它不改变代理逻辑,只优化组织方式。
把通用代理逻辑写进单独的 conf 文件
比如新建一个 /etc/nginx/conf.d/proxy-common.conf,里面放所有反向代理必需的头部设置和基础行为:
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;proxy_http_version 1.1;proxy_set_header Connection "";proxy_next_upstream error timeout http_502 http_503 http_504;proxy_connect_timeout 30s;proxy_send_timeout 60s;proxy_read_timeout 60s;
在 server 块里用 include 引入模版
每个需要反向代理的站点,只需定义监听、域名、路径规则,再 include 公共配置即可:
server {
listen 80;
server_name api.example.com;
location /user/ {
proxy_pass http://user-svc:8001/;
include /etc/nginx/conf.d/proxy-common.conf;
}
location /order/ {
proxy_pass http://order-svc:8002/;
include /etc/nginx/conf.d/proxy-common.conf;
}
}
这样避免了每处都重复粘贴十几行 header 设置,也方便统一调整——改一处,所有引用的地方自动生效。
支持按场景分层 include
可以进一步拆分,比如:
-
proxy-timeout.conf:超时相关参数 -
proxy-header.conf:客户端信息传递头 -
proxy-resilience.conf:失败重试与健康检查兜底逻辑
然后在具体 location 中选择性引入:
location /api/ {
proxy_pass http://backend;
include /etc/nginx/conf.d/proxy-header.conf;
include /etc/nginx/conf.d/proxy-timeout.conf;
}
注意路径和加载顺序
include 是字面量替换,不是作用域继承。所以:
- 确保被 include 的文件路径正确,Nginx 启动时会校验;可用
nginx -t测试 - 指令执行顺序很重要:比如
proxy_pass必须在include前或后?实际无依赖,但习惯上把proxy_pass放前面更直观 - 不要在
upstream块内用include—— Nginx 不允许,必须写在http级别











