最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 如何使用 include 配置按模块功能切分主配置文件结构
时间:2026-08-16 11:44:49 编辑:袖梨 来源:一聚教程网
Nginx模块化配置需按作用域规则将同类指令集中到专用文件并在对应上下文精准include:upstream和log_format放http{}开头,ssl和安全头等按需引入server内,路径用绝对路径或规范相对路径,修改后必须nginx -t验证。
用 include 按模块功能切分 Nginx 主配置,核心是把同类指令集中到独立文件,再在对应上下文里引入——不是随便拆,而是按 Nginx 的作用域规则,让每类配置只出现在它合法的位置。
按功能类型建专用配置文件
把跨站点复用的配置抽出来,统一管理,避免重复和不一致:
-
upstream.conf:只放
upstream块,必须放在http{}最顶层(server 块外),路径如/etc/nginx/upstreams/api.conf -
log_formats.conf:定义
log_format,同样在http{}内提前加载,后续所有server都可直接引用名称 - ssl.conf:含证书路径、TLS 版本、加密套件等,专供 HTTPS 站点复用,不写在单个 server 里
-
security-headers.conf:存放
add_header类安全头,可被多个server或location引入
在主配置中按上下文精准 include
include 的位置决定能加载什么内容,不能乱放:
- 在
http{}块开头(server{}之前)引入upstream和log_format文件 - 在
http{}块中间引入通用设置,如gzip、map、limit_req_zone - 在某个
server{}块内引入security-headers.conf或rewrites.conf,只影响该站点 - 绝对不要在
events{}或全局块里引入server或http块——语法直接报错
目录结构与路径写法要稳
路径不是相对当前文件,而是以 Nginx 配置根目录(通常是 /etc/nginx/)为基准:
- 推荐用绝对路径:
include /etc/nginx/upstreams/*.conf; - 若用相对路径,省略
./,直接写include snippets/ssl-params.conf; - 含空格或特殊字符的文件名必须加引号:
include "my app.conf"; - 通配符不递归,
conf.d/**/*.conf无效;多级目录需显式写明,如include conf.d/v2/*.conf;
验证与避坑要点
模块化后更易出错,每次修改都要验证:
- 改完任一被 include 的文件,都必须运行
nginx -t—— 它会检查所有嵌套文件的语法 - 避免同名重复定义:比如两个文件都写了
log_format main,Nginx 启动失败 - 通配符按字母序加载,
01-api.conf会比99-admin.conf先读入,影响server_name匹配优先级 - 被 include 的文件里不能混入非法指令,例如在
server{}文件里写upstream,就会报 “directive is not allowed here”