› NGINX
› NGINX Trac
› 3rd Party Modules
› Security Advisories
› CHANGES
› OpenResty
› ngx_lua
› Tengine
在线学习资源
› NGINX 开发从入门到精通
NGINX Modules
› ngx_echo
jugelizi
V2EX  ›  NGINX

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

  •  
  •   jugelizi · Jan 11, 2020 · 6056 views
    This topic created in 2490 days ago, the information mentioned may be changed or developed.

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

    好像这样不行

    12 replies  •  2020-01-12 02:02:50 +08:00
    alexliux
    alexliux
    Jan 11, 2020 via Android
    1
    规则长的优先
    imkuang
    imkuang
    Jan 11, 2020
    2
    不是,有专门的优先级的,好象是正则方式匹配的优先级最高,/的优先级最低(不保证正确性),中间还有好多类
    wd
    wd
    Jan 11, 2020 via iPhone
    3
    搜索下 why nginx if is evil
    xmlf
    xmlf
    Jan 11, 2020 via Android
    4
    我遇到 deny IP 段竟然不起作用的情况。实验自己的 ip 段没问题。我也郁闷死了!
    hcymk2
    hcymk2
    Jan 11, 2020❤️2
    5
    agentzh 的 Nginx 教程
    xmlf
    xmlf
    Jan 11, 2020
    6
    @hcymk2 感谢。
    之所以不起作用是因为 rewrite 指令在 access 指令之前执行。
    adoal
    adoal
    Jan 11, 2020 via iPhone
    7
    nginx 配置语法是描述式的,不是过程式的
    kidlj
    kidlj
    Jan 11, 2020
    8
    if 属于 rewrite module,rewrite module 优先级高。看官方文档,英文的。
    bobuick
    bobuick
    Jan 11, 2020
    9
    ngx 的 parser 是分几个阶段的,不同的 direct 写在不同位置处在的 parser 阶段不一样,并不是完全按书写顺序来定的,而是看 parser 阶段。
    Citrus
    Citrus
    Jan 11, 2020
    10
    新手大概率会犯的错误:认为 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
    loading
    Jan 11, 2020 via Android
    11
    一般路由地址也是深度优先的
    msg7086
    msg7086
    Jan 12, 2020 via Android
    12
    不是顺序执行的。倒不如说这是配置而不是代码,所以根本不能 执行。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1263 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 21:05 · PVG 05:05 · LAX 13:05 · JFK 16:05
    ♥ Do have faith in what you're doing.