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 相关文章推荐
Filebeat 采集 Nginx 日志的方法
Mar 31 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
Nginx反向代理学习实例教程
Oct 24 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
Nginx虚拟主机的搭建的实现步骤
Jan 18 Servers
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
Apr 07 Servers
在Docker容器中部署SQL Server
Apr 11 Servers
idea下配置tomcat避坑详解
Apr 12 Servers
如何通过cmd 连接阿里云服务器
Apr 18 Servers
CentOS7 minimal 最小化安装网络设置过程
Dec 24 Servers
nginx网站服务如何配置防盗链(推荐)
本地通过nginx配置反向代理的全过程记录
nginx优化的六点方法
Mar 31 #Servers
Nginx优化服务之网页压缩的实现方法
Nginx 负载均衡是什么以及该如何配置
Mar 31 #Servers
Nginx快速入门教程
nginx如何将http访问的网站改成https访问
Mar 31 #Servers
You might like
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
利用Python演示数型数据结构的教程
2015/04/03 Python
Python使用pymysql小技巧
2017/06/04 Python
Python学习思维导图(必看篇)
2017/06/26 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
python实现数字炸弹游戏程序
2020/07/17 Python
介绍一下gcc特性
2012/01/20 面试题
公司业务主管岗位职责
2013/12/07 职场文书
怎样写演讲稿
2014/01/04 职场文书
运动会表扬稿
2015/01/16 职场文书