我希望在我的Nginx配置中扩展mime类型。
我已经了解到,我原则上可以编辑mime.types文件,或者在配置的http
块中包含mime.types后可以跟随include mime.types
types = {...}
添加更多类型la this answer。
由于我正在使用Chef设置Nginx,因此我在已启用网站的文件夹中有一个模板化配置,该文件夹包含在Nginx配置中。我不希望模板化nginx配置或mime.types文件,因此我希望能够在启用站点的配置文件中获取它。
与上述链接问题类似,我是否可以在启用网站的文件中包含此内容以获得相同的效果?
http {
types {
# here is additional types
}
}
我的工作理论是,如果块的工作方式如上面的链接所述,添加这样的块不会覆盖Nginx配置中的http
块,但会扩展它,就好像我添加了{{1直接转到types
中的http
块。
这是一个有效的策略吗?还是我更容易忽视一些事情?
答案 0 :(得分:1)
虽然文档中没有明确说明,但nginx
types指令在继承方面的行为似乎与其他指令类似。
当且仅当在当前级别上没有定义type
指令时,该指令才从前一级继承。
types
指令可能会显示在http
,server
或location
块级别中。
要扩展mime类型(而不是重新定义它们),可以在包含types
,http
或server
上下文的任何文件中添加location
块添加内容
但是,如果您在types
或server
级别添加location
块,则还应在同一级别添加另一个include mime.types
语句,以免丢失系统默认值。
在启用网站的文件中:
# (1)
server {
# (2)
location ... {
# (3)
}
}
如果启用了站点的文件包含server { ... }
块定义,则可以在位置(1)中添加类型块,这将增加主nginx.conf
文件已加载的mime类型。
但是,如果在位置(2)或(3)中添加了类型块,则还需要添加include
语句以再次引入系统类型:
server {
include mime.types;
types { ... }
...
}
types
指令为documented here。