2016-05-19 60 views
1

我正在寻找扩展我的Nginx配置中的MIME类型。在厨师部署的Nginx服务器中扩展MIME类型

我明白了,我可以,原则上,可以编辑mime.types文件,或包括在配置的http块的mime.types后,你可以遵循include mime.typestypes = {...}追加更多类型的一拉this answer

由于我与厨师一起设置了Nginx,因此我已在包含在Nginx配置中的启用站点的文件夹中进行了模板配置。我宁愿不必模板nginx配置文件或mime.types文件,所以我希望可以在启用网站的配置文件中获取它。

与上述链接问题类似的精神,我可以在我的网站启用文件中包含此功能以获得相同的效果吗?

http { 
    types { 
     # here is additional types 
    } 
} 

我的工作原理是,如果在上面的链接描述的那样,加入这样的块将不会覆盖在Nginx的配置的http块,但会延长它,就好像我已经直接添加types到块工作nginx.conf中的http块。

这是一个有效的策略?还是我忽略了一些更容易?

回答

1

尽管在文档中没有明确说明,但nginx类型指令在继承方面似乎与其他指令的行为类似。

当且仅当在当前级别上没有定义type指令时,该指令从前一级继承。

types指令可能出现在http,serverlocation块级别。

要扩展的mime类型(而不是重新定义它们)以可以与添加在含有httpserverlocation上下文任何文件中添加types块。

但是,如果你在serverlocation级别添加types块,你也应该在同一水平再添include mime.types声明,以免丢失系统默认值。

在启用了网站,文件:

# (1) 
server { 
    # (2) 
    location ... { 
     # (3) 
    } 
} 

如果启用了站点文件包括server { ... }块定义,你可以添加一个类型的定位块(1),这将增加已经被加载的MIME类型主要nginx.conf文件。

server { 
    include mime.types; 
    types { ... } 
    ... 
} 

types指令是:

不过,如果你增加了一个类型的职位(2)或(3),你也需要添加一个include语句在系统类型再次拉块documented here