适合抽离到 include 文件中的内容包括:多个 server 块共用的部分(如统一的 location /api 代理逻辑)、环境相关配置(如不同环境的 upstream 地址)、安全加固指令(如 add_header x-content-type-options nosniff)、复杂 rewrite 规则或 map 块、日志格式定义(log_format)和 access_log 配置。

直接在 server 块里用 include 指令,就能把重复、冗长或环境相关的配置片段(比如 SSL 参数、反向代理规则、日志格式、安全头)抽出来单独管理,让主配置更清晰、易复用。
哪些内容适合抽离到 include 文件中
不是所有配置都适合拆分,重点是那些:
• 多个 server 块共用的部分(如统一的 location /api 代理逻辑)
• 与环境强相关的内容(如开发/测试/生产环境不同的 upstream 地址)
• 安全加固类指令(如 add_header X-Content-Type-Options nosniff;)
• 复杂的 rewrite 规则或 map 块
• 日志格式定义(log_format)和 access_log 配置
实际写法与路径注意事项
include 必须写在有效的上下文内。在 server 块中,它可以放在顶层或嵌套在 location 内,但不能跨层级引入不兼容的指令。
例如,在 server 块中这样写是合法的:
server {
listen 443 ssl;
server_name example.com;
include conf.d/ssl_params.conf;
include conf.d/security_headers.conf;
location / {
include conf.d/proxy_backend.conf;
}
}
注意:
• 路径支持绝对路径(推荐)或相对于 nginx.conf 所在目录的相对路径
• 不支持变量(如 include $env/conf.conf)
• 被包含文件本身必须语法正确,否则 nginx -t 会失败
推荐的目录结构与维护习惯
建议按功能归类,避免单个文件过大或职责混乱:
• /etc/nginx/conf.d/ssl_params.conf:通用 TLS 配置(证书路径、协议、密钥交换)
• /etc/nginx/conf.d/upstreams.conf:集中定义 upstream 块(可被多个 server 共享)
• /etc/nginx/conf.d/common_locations.conf:常用 location 模板(如静态资源缓存、PHP FastCGI)
• /etc/nginx/sites-available/example.com 中的 server 块,再通过 include 调用上述通用文件
每次修改后务必执行:nginx -t 验证语法nginx -s reload 热更新生效











