nginx include指令
include 指令是 Nginx 模块化配置的核心,可将配置拆分到多个文件。
基本用法
nginx
include /etc/nginx/mime.types;
include /etc/nginx/conf.d/*.conf;
路径表示
绝对路径
nginx
include /etc/nginx/conf.d/default.conf;
相对路径
nginx
include conf.d/*.conf;
相对于 Nginx 安装目录。
通配符
nginx
# 匹配所有 .conf 文件
include /etc/nginx/conf.d/*.conf;
# 匹配特定模式
include /etc/nginx/sites-enabled/*;
常用场景
MIME 类型
nginx
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
}
站点配置
nginx
http {
include /etc/nginx/conf.d/*.conf;
}
额外配置
nginx
http {
include /etc/nginx/fastcgi_params;
include /etc/nginx/uwsgi_params;
include /etc/nginx/scgi_params;
}
配置拆分示例
主配置文件 nginx.conf:
nginx
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
# 通用配置
include /etc/nginx/conf.d/gzip.conf;
include /etc/nginx/conf.d/logging.conf;
# 站点配置
include /etc/nginx/conf.d/*.conf;
}
拆分文件 conf.d/gzip.conf:
nginx
gzip on;
gzip_types text/css application/javascript;
gzip_min_length 256;
拆分文件 conf.d/logging.conf:
nginx
log_format main '$remote_addr - $request - $status';
access_log /var/log/nginx/access.log main;
注意事项
- include 路径相对于执行
nginx命令时的工作目录- 使用绝对路径更可靠
- 通配符匹配的文件顺序不确定,不依赖加载顺序
- 被引入文件内的语法要求与主配置相同
- include 可嵌套,但避免循环引入
条件引入
nginx
# 仅在文件存在时引入(Nginx 1.19.10+)
include conf.d/optional.conf;
与模块化目录结构配合
text
/etc/nginx/
├── nginx.conf # 主配置
├── mime.types
├── conf.d/
│ ├── gzip.conf
│ ├── logging.conf
│ └── sites/
│ ├── site1.conf
│ └── site2.conf
└── sites-enabled/
├── site1 -> ../sites-available/site1
└── site2 -> ../sites-available/site2
要点总结
- include 引入外部配置文件,支持绝对路径、相对路径、通配符
- 常用于引入 MIME 类型、站点配置、参数文件
- 使用绝对路径更可靠,避免相对路径歧义
- 通配符加载的文件顺序不确定
- 配置拆分提升可读性和维护性,推荐生产使用
📝 发现内容有误?点击此处直接编辑