nginx仅加载以.conf为后缀的配置文件,include指令只匹配.conf结尾的文件,不识别.bak、.cfg等其他后缀,且不支持变量或非.conf通配符。

Nginx 只识别并加载以 .conf 为后缀的配置文件,其他后缀一律被忽略。
必须用 .conf 后缀
Nginx 的 include 指令在扫描路径(如 /etc/nginx/conf.d/*.conf)时,仅匹配结尾为 .conf 的文件。像 default.bak、site.old、test.txt 这类文件不会被读取,也不会报错——直接跳过。
- ✅ 正确:api.example.com.conf、ssl-common.conf、monitoring.conf
- ❌ 无效:api.example.com.bak、upstream.cfg、nginx-include.txt
命名应体现用途或归属
避免使用无意义名称(如 1.conf、temp.conf),便于团队协作和后期维护。
- 按业务场景:如
payment-api.conf、admin-dashboard.conf - 按功能类型:如
rate-limiting.conf、cors-headers.conf - 按环境区分(如需多环境):可加前缀
prod-static.conf,但后缀仍必须是.conf
注意文件权限与位置一致性
被 include 的文件需满足两个基本条件:
- 文件本身可被 Nginx 主进程读取(通常属主为 root,权限建议
644) - 路径在
include指令中写准确——支持绝对路径,也支持相对于--prefix目录的相对路径(默认是/usr/local/nginx) - 不能跨上下文:比如在
server块里include一个含http指令的文件,会启动失败
不支持变量或动态后缀
include 不解析变量,也不能用通配符匹配非 .conf 后缀。以下写法均无效:
-
include /etc/nginx/conf.d/*.cfg;(.cfg不被识别) -
include /etc/nginx/conf.d/$env.conf;(变量不展开) -
include /etc/nginx/conf.d/sites/*.;(缺少明确后缀,不匹配任何文件)











