- nginx 是分阶段执行的,并不像 C 这种编程语言一样顺序执行。指令执行的顺序和书写的顺序没有太大关系(跟具体模块的实现有关),一个 phase 执行完了就会执行到下一个阶段。
-
if属于rewrite模块的,所以对于if来讲,会和其他的rewrite模块执行全部执行完之后再进行下一阶段。如果if指令的结果是 match 的,那么if会创建一个内嵌的location块,只有这里面的content处理指令(NGX_HTTP_CONTENT_PHASE阶段)会执行。 - 问题所在:有的模块会继承 outter scope,有的则不会,所以结果会与预期不同。











网友评论