nginx的rewrite中break和last区别

配置文件,没有echo模块的话可以改成return测试。

server{
    listen 80;
    server_name test.com;
    access_log /tmp/test_nginx.log main;

    location /break/ {
        rewrite /break/(.*) /break/test/$1 break;
        location /break/test/ {
              echo "break-test";
        }
        echo "break";

    }

    location /last/ {
        rewrite /last/(.*) /test/$1 last;
        echo "last";
    }

    location /test/ {
        echo "test";
    }

}

访问结果

1.http://test.com/break/a.txt--------->break

2.http://test.com/last/a.txt--------->test

3.http://test.com/test/a.txt--------->test

 

结论:

last:停止当前这个请求,并根据重写后的规则,重新发起一个请求。

break:停止当前这个请求,在当前字段继续向下执行,但不会匹配其他location。

Tags:nginx
上一篇
下一篇

添加新评论