单个Nginx网站可以有自己的http块吗?

比方说,我有一个网站的Nginxconfiguration。

# /etc/nginx/sites-available/my-site server { ... } 

但我想sendfile off; 为该网站设置。 我可以在文件的开头添加一个http块吗?

 # /etc/nginx/sites-available/my-site http { sendfile off; } server { ... } 

这甚至会工作吗? 它会对所有网站产生全球影响吗?

我认为nginx非官方支持多个http块,但通常你只会有一个。

这个想法是,你有一个单一的http块/上下文,然后在http块中的一个或多个服务器块。 在服务器块内,可以有一个或多个位置块。

configuration设置是inheritance的,可以使用上面的嵌套方法重写。

关于sendfile,它可以在任何块中configuration:

 Syntax: sendfile on | off; Default: sendfile off; Context: http, server, location, if in location 

(请参阅: http : //nginx.org/en/docs/http/ngx_http_core_module.html#sendfile )

因此,您可以简单地添加“sendfile off” 到你的服务器块,这将覆盖http块中设置的sendfile值。