Nginx中break与last的区别详析


Posted in Servers onMarch 31, 2021

先说区别

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

Nginx 配置文件

server {
  listen 88;
  server_name _;
  location /break { # location 1
   rewrite ^/break/(.*)$ /bak/$1 break;
  }
  location /last { # location 2
   rewrite ^/last/(.*)$ /bak/$1 last;
  }

  location /bak { # location 3
   default_type text/html;
   return 200 $uri;
  }

}

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

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

浏览器

Nginx中break与last的区别详析

Nginx错误(error.log)日志

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

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

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

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

Nginx中break与last的区别详析 

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

break 和 last 的使用场景

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区别的文章就介绍到这了,更多相关Nginx中break与last区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx+Tomcat实现负载均衡、动静分离的原理解析
Mar 31 Servers
Nginx域名转发使用场景代码实例
Mar 31 Servers
教你快速开启Apache SkyWalking的自监控
Apr 25 Servers
nginx部署多前端项目的几种方法
May 25 Servers
配置nginx 重定向到系统维护页面
Jun 08 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
阿里云ECS云服务器快照的概念以及如何使用
Apr 21 Servers
nginx日志格式分析和修改
Apr 28 Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
May 20 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
Jun 21 Servers
Centos7 Shell编程之正则表达式、文本处理工具详解
Aug 05 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
Sep 23 Servers
nginx网站服务如何配置防盗链(推荐)
本地通过nginx配置反向代理的全过程记录
nginx优化的六点方法
Mar 31 #Servers
Nginx优化服务之网页压缩的实现方法
Nginx 负载均衡是什么以及该如何配置
Mar 31 #Servers
Nginx快速入门教程
nginx如何将http访问的网站改成https访问
Mar 31 #Servers
You might like
php 无法载入mysql扩展
2010/03/12 PHP
PHP多个版本的分析解释
2011/07/21 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
JS不完全国际化&本地化手册 之 理论篇
2016/09/27 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
python搭建简易服务器分析与实现
2012/12/15 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
Django的models模型的具体使用
2019/07/15 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
团员的自我评价
2013/12/01 职场文书
揭牌仪式主持词
2014/03/19 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技