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实现上游服务器动态自动上下线无需reload的实现方法
Mar 31 Servers
Nginx优化服务之网页压缩的实现方法
Mar 31 Servers
Nginx中break与last的区别详析
Mar 31 Servers
浅谈Nginx 中的两种限流方式
Mar 31 Servers
Nginx已编译的nginx-添加新模块
Apr 01 Servers
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
Sep 25 Servers
Nginx反向代理学习实例教程
Oct 24 Servers
解决xampp安装后Apache无法启动
Mar 21 Servers
nginx容器方式反向代理实战
Apr 18 Servers
Windows Server 2012配置DNS服务器的方法
Apr 29 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
zabbix配置nginx监控的实现
May 25 Servers
nginx网站服务如何配置防盗链(推荐)
本地通过nginx配置反向代理的全过程记录
nginx优化的六点方法
Mar 31 #Servers
Nginx优化服务之网页压缩的实现方法
Nginx 负载均衡是什么以及该如何配置
Mar 31 #Servers
Nginx快速入门教程
nginx如何将http访问的网站改成https访问
Mar 31 #Servers
You might like
全文搜索和替换
2006/10/09 PHP
PHP微信红包API接口
2015/12/05 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
javascript运动详解
2015/07/06 Javascript
jQuery.each使用详解
2015/07/07 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
React如何避免重渲染
2018/04/10 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Python中str.format()详解
2017/03/12 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
最新结婚典礼主持词
2014/03/14 职场文书
科学发展观演讲稿
2014/09/11 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Linux中sftp常用命令整理
2022/06/28 Servers