Nginx 配置文件忽略不存在的 include 文件
2018-06-28
Nginx 配置文件的 include
指令如果遇到不存在的文件名,会报错:
[emerg] open() "/home/x/srv/nginx.conf" failed (2: No such file or directory) in /etc/nginx/nginx.conf:75 configuration file /etc/nginx/nginx.conf test failed
有时我们希望文件不存在时直接忽略。这时可以利用 include
指令的一个特性:如果文件名包括通配符,允许匹配 0 个文件。所以我们将指令稍稍改写即可:
include /home/x/srv/nginx*.conf
但是,这样的风险是如果那个目录下存在一个 nginx-a.conf
,也会被 include 进来。所以,更好的方法是利用 [] 通配符,在其中任意一个字符两侧加上方括号:
include /home/x/srv/ngin[x].conf
这个通配符严格地只会匹配 /home/x/srv/nginx.conf
这一个文件,文件不存在也不报错。完美!