跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • nginx 的配置代码不是按顺序执行的吗
未分類
3 5 月 2020

nginx 的配置代码不是按顺序执行的吗

nginx 的配置代码不是按顺序执行的吗

資深大佬 : jugelizi 58

如果文件不存在
先判断是否制定类型 执行跳转 if(uri ) 其他不存在的 执行其他事务

好像这样不行

大佬有話說 (12)

  • 資深大佬 : alexliux

    规则长的优先

  • 資深大佬 : xiri

    不是,有专门的优先级的,好象是正则方式匹配的优先级最高,/的优先级最低(不保证正确性),中间还有好多类

  • 資深大佬 : wd

    搜索下 why nginx if is evil

  • 資深大佬 : xmlf

    我遇到 deny IP 段竟然不起作用的情况。实验自己的 ip 段没问题。我也郁闷死了!

  • 資深大佬 : hcymk2

    agentzh 的 Nginx 教程

  • 資深大佬 : xmlf

    @hcymk2 感谢。
    之所以不起作用是因为 rewrite 指令在 access 指令之前执行。

  • 資深大佬 : adoal

    nginx 配置语法是描述式的,不是过程式的

  • 資深大佬 : kidlj

    if 属于 rewrite module,rewrite module 优先级高。看官方文档,英文的。

  • 資深大佬 : bobuick

    ngx 的 parser 是分几个阶段的,不同的 direct 写在不同位置处在的 parser 阶段不一样,并不是完全按书写顺序来定的,而是看 parser 阶段。

  • 資深大佬 : Citrus

    新手大概率会犯的错误:认为 Nginx 配置文件是并行的。
    建议去看春哥的 Nginx 教程,Nginx 处理请求是有生命周期的。实际上每一个不同的配置是在不同的生命周期里执行的。靠前的生命周期中的配置项就算是写到最末尾,也是优先执行的。
    比如:
    “`
    location /test {
    set $a 1;
    echo $a;

    set $a 2;
    echo $a;
    }
    “`
    实际输出的是两个 2,而不是一个 1 一个 2。因为 set 是 rewrite 阶段执行,echo 是 content 阶段执行,因此就算你是交叉写的,第一个 echo 也不会会比第二个 set 先执行。

  • 資深大佬 : loading

    一般路由地址也是深度优先的

  • 資深大佬 : msg7086

    不是顺序执行的。倒不如说这是配置而不是代码,所以根本不能 执行。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具