If Is Evil

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

    相关文章

      网友评论

        本文标题:If Is Evil

        本文链接:https://www.haomeiwen.com/subject/uvpnrctx.html