原文:https://book.2cto.com/201304/19626.html
块配置项由一个块配置项名和一对大括号组成。具体示例如下:
events {
…
}
http {
upstream backend {
server 127.0.0.1:8080;
}
gzip on;
server {
…
location /webstatic {
gzip off;
}
}
}
上面代码段中的events、http、server、location、upstream等都是块配置项,块配置项之后是否如“location /webstatic {...}”那样在后面加上参数,取决于解析这个块配置项的模块,不能一概而论,但块配置项一定会用大括号把一系列所属的配置项全包含进来,表示大括号内的配置项同时生效。所有的事件类配置都要在events块中,http、server等配置也遵循这个规定。
块配置项可以嵌套。内层块直接继承外层块,例如,上例中,server块里的任意配置都是基于http块里的已有配置的。当内外层块中的配置发生冲突时,究竟是以内层块还是外层块的配置为准,取决于解析这个配置项的模块,第4章将会介绍http块内配置项冲突的处理方法。例如,上例在http模块中已经打开了“gzip on;”,但其下的location/webstatic又把gzip关闭了:gzip off;,最终,在/webstatic的处理模块中,gzip模块是按照gzip off来处理请求的。