Apache 和 nginx 都有一种方法可以“在配置中包含此文件的内容”,(Include
&include
分别)。如果提供的文件名不存在,则两者都会导致配置无效。
但 Apache 还有IncludeOptional
,其功能相同,但如果文件不存在,则不会导致配置错误。(如果文件存在并且不是有效的 apache 配置文件,则会导致错误)。
nginx 是否有这样的“如果文件存在则包含它,如果不存在则不出错”的功能?
答案1
作为核心功能指令列表是详尽的,这显然不存在作为单独的指令。但是,mask
变体不需要任何文件来实际匹配。
- 句法:
include file | mask;
- 默认: -
- 上下文:任何
包括另一个文件或与指定匹配的文件面具,进入配置。包含的文件应由语法正确的指令和块组成。
使用示例:
include mime.types; include vhosts/*.conf;
例如,Ubuntu/Debian 默认nginx.conf
附带一个示例;/etc/nginx/conf.d/
目录是空的,但这不会引发任何错误:
include /etc/nginx/conf.d/*.conf;