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前后端同域名配置的方法实现
Mar 31 Servers
Nginx域名转发https访问的实现
Mar 31 Servers
扩展多台相同的Web服务器
Apr 01 Servers
Nginx下配置Https证书详细过程
Apr 01 Servers
nginx作grpc的反向代理踩坑总结
Jul 07 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
Kubernetes中Deployment的升级与回滚
Apr 01 Servers
Tomcat弱口令复现及利用
May 06 Servers
服务器间如何实现文件共享
May 20 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 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
详解Python中的__init__和__new__
2014/03/12 Python
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
门卫班长岗位职责
2013/12/15 职场文书
学习心理学的体会
2014/11/07 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
结婚通知短信大全
2015/04/17 职场文书
法定授权委托证明书
2015/06/18 职场文书
Python中requests库的用法详解
2022/06/05 Python