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 tp3.2.3 404问题解决方案
Mar 31 Servers
nginx简单配置多个server的方法
Mar 31 Servers
nginx里的rewrite跳转的实现
Mar 31 Servers
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
Mar 31 Servers
关于Nginx中虚拟主机的一些冷门知识小结
Mar 03 Servers
基于Apache Hudi在Google云构建数据湖平台的思路详解
Apr 07 Servers
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
Apr 29 Servers
Windows Server 2012 R2 磁盘分区教程
Apr 29 Servers
nginx lua 操作 mysql
May 15 Servers
windows server 2012安装FTP并配置被动模式指定开放端口
Jun 10 Servers
设置IIS Express并发数
Jul 07 Servers
Docker部署Mysql8的实现步骤
Jul 07 Servers
nginx网站服务如何配置防盗链(推荐)
本地通过nginx配置反向代理的全过程记录
nginx优化的六点方法
Mar 31 #Servers
Nginx优化服务之网页压缩的实现方法
Nginx 负载均衡是什么以及该如何配置
Mar 31 #Servers
Nginx快速入门教程
nginx如何将http访问的网站改成https访问
Mar 31 #Servers
You might like
php split汉字
2009/06/05 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
PHP闭包函数详解
2016/02/13 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
微信小程序实现左右列表联动
2020/05/19 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
python中zip()方法应用实例分析
2016/04/16 Python
Python简单实现控制电脑的方法
2018/01/22 Python
利用python求积分的实例
2019/07/03 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
个人找工作自荐信格式
2013/09/21 职场文书
顶岗实习接收函
2014/01/09 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
检察院起诉意见书
2015/05/20 职场文书
垂直极限观后感
2015/06/08 职场文书
追悼会悼词大全
2015/06/23 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
zabbix配置nginx监控的实现
2022/05/25 Servers