Context是Nginx中每条指令都会附带的信息,用来说明指令在哪个指令块中使用,可以将Context 理解为配置环境。
每个指令都拥有自己的配置环境,如果把配置环境记错了,或者在设计时未考虑配置环境的作用,就很可能导致配置无法达到预期。举例来说,观察图3-1所示的根据请求参数定制响应头的逻辑。
图3-1 根据请求参数定制响应头的逻辑
根据图3-1的需求,有的读者可能会不假思索地写出如下代码:
但启动Nginx却出现如下报错信息:
通过阅读Nginx的官方Wiki可以找到出现错误的原因:
可知proxy_set_header所支持的配置环境(Context),只有http、server、location这3个指令块,不支持if语句。因此对于要用到的指令,使用前需要知道它的配置环境。