让前端飞Web前端之路

If Is Evil

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

猜你喜欢

热点阅读