先说区别

  • last,重写后的规则,会继续用重写后的值去匹配下面的location。
  • break,重写后的规则,不会去匹配下面的location。使用新的规则,直接发起一次http请求了。

Nginx 配置文件

server {listen 88;server_name _;location /break { # location 1rewrite ^/break/(.*)$ /bak/$1 break;}location /last {  # location 2rewrite ^/last/(.*)$  /bak/$1 last;}location /bak {  # location 3default_type text/html;return 200 $uri;}}

访问 http://rumenz.com:88/break/one

命中location1,浏览器地址栏没有变,直接去找/nginx/html/bak/one文件,由于没有这个文件所以返回404。

浏览器

Nginx错误(error.log)日志

/nginx/html/bak/one failed (2: No such file or directory)

break表示重写后停止不再匹配location块。

访问 http://rumenz.com:88/last/one

命中location2,浏览器地址栏没有变,重新匹配到location3

last表示重写后跳到location块再次用重写后的地址匹配

breaklast的使用场景

break

文件下载,隐藏保护真实文件服务器。

location /down {rewrite ^/down/(.*)$ https://rumenz.com/file/$1 break;
}

last

接口地址改写,将https://rumenz.com/api/list改写成https://rumenz.com/newapi/list

location /api {rewrite ^/api/(.*)$ /newapi/$1 last;
}location /newapi {default_type Application/json;return 200 '{"code":200,"msg":"ok","data":["JSON.IM","json格式化"]}';
}

关注微信公众号:【入门小站】,解锁更多知识点

Nginx中break和last的区别相关推荐

  1. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  2. WAF(NGINX)中502和504的区别

    0x00 前言 华为云WAF使用最好的服务器和带宽为客户提供反向代理和安全检测服务,但是在使用过程中,个别用户的请求出现了502或者504.因此我们团队也经常受到用户的反馈,这里可以大致和大家澄清一下 ...

  3. PreTranslateMessage(MSG* pMsg) 中 break 与return的区别

    程序一: BOOL CMyRichEditView::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (pMsg->me ...

  4. while 中 break 与 continue 的区别

    break的用法: i = 0 while i<6:i += 1if i == 4:break;print(i) 输出: 1 2 3 i 的初值是 0 ,循环一次数值就加 1 ,一直加到 i== ...

  5. Java中 break continue return 的区别

    1.break break :跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环: for (int i = 0; i < 10; i++) { i ...

  6. python中break和continue的区别_python中break和continue的区别

    原博文 2017-08-01 09:56 − break和continue 1.break 意思为结束循环 例: i = 0 while i<10: i+=1 if i==5: #当i=5时,结 ...

  7. break和continue区别python_1、Python中break和continue的区别

    ******************** 自己的小总结!大神们不要见笑,刚初学Python *************************** 1.在Python中,break是结束本次循环.而c ...

  8. java中break和return的区别_java 中return和break的区别

    在java的方法中,分为带返回参数和无返回参数两种方法.在带返回参数的方法体中,需要用return来返回该参数并表示该方法体执行完毕,该方法体中return后的语句将不会被执行.在无返回参数的方法中, ...

  9. nginx中root和alias的区别

    今天使用nginx搭建了一个网站,访问后出现404错误Not found. 上网查了一下原因,是由于nginx的配置不对.因为我是有两个web目录,这两个目录在不同的位置上.而且我不想把两个目录合并在 ...

最新文章

  1. MySQL Router实现MySQL的读写分离
  2. CSS基础篇--强制性换行word-break与word-wrap的使用
  3. java 复制剪贴板_java_swing复制粘贴、剪贴板
  4. MySQL高级 - 常用工具 - mysql
  5. base64编码以及url safe base64是怎么工作的?
  6. java 数字字母进位_使用带有进位的8085微处理器将两个8位数字相乘
  7. python列表写入字典_python – 将列表字典写入CSV文件
  8. 【BZOJ1037】【codevs1410】生日聚会,DP
  9. Java 程序员最爱 Kotlin?
  10. 安装Linux系统的一些问题记载
  11. ThinkPHP在IIS下配置ISAPI伪静态去掉index.php
  12. Autodesk AutoCAD 2022 产品系列已发布(附下载)
  13. 朗文词典第五版安装详细步骤
  14. D-GAN用于时空预测的深度生成对抗网络
  15. 【sublime】sublime添加浏览器预览快捷键
  16. Wi-Fi 6 BSS着色和空间重用白皮书
  17. 打开Adobe Premiere Pro提示“由于找不到msvcp110.dll,无法继续执行代码。重新安装程序可能会解决此问题”。【方法适用于几乎所有dll文件丢失时】
  18. week6 视频分镜
  19. 微信域名防封技术,我们应该如何解决屏蔽拦截
  20. Windows7系统服务详解

热门文章

  1. Python 处理各种编码的字符串
  2. linux/unix上 printf输出带颜色字体(有意思)-转
  3. [Java] 蓝桥杯 BASIC-9 基础练习 特殊回文数
  4. 蓝桥杯 BASIC-5 基础练习 查找整数
  5. 音乐 美术 计算机期末考试表,贵阳初中学业水平考试信息技术、音乐、美术考评标准出炉!...
  6. Google I/O 2019 将于5月7日举办
  7. csharp datagridview to a datatable,a dataset
  8. ES5-String-indexOf/lastIndexOf
  9. Linux(ubuntu)下切换root用户
  10. 代理网络中安装tomcat的注意事项