Nginx中break和last的区别
先说区别
- last,重写后的规则,会继续用重写后的值去匹配下面的location。
- break,重写后的规则,不会去匹配下面的location。使用新的规则,直接发起一次http请求了。
Nginx 配置文件
server {listen 88;server_name _;location /break { # location 1rewrite ^/break/(.*)$ /bak/$1 break;}location /last { # location 2rewrite ^/last/(.*)$ /bak/$1 last;}location /bak { # location 3default_type text/html;return 200 $uri;}}
访问 http://rumenz.com:88/break/one
命中location1,浏览器地址栏没有变,直接去找
/nginx/html/bak/one
文件,由于没有这个文件所以返回404。
浏览器
Nginx错误(error.log)日志
/nginx/html/bak/one failed (2: No such file or directory)
break
表示重写后停止不再匹配location
块。
访问 http://rumenz.com:88/last/one
命中location2,浏览器地址栏没有变,重新匹配到
location3
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的区别相关推荐
- python中break和continue的区别
python中break和continue的区别 break 结束for 或者while 循环 后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...
- WAF(NGINX)中502和504的区别
0x00 前言 华为云WAF使用最好的服务器和带宽为客户提供反向代理和安全检测服务,但是在使用过程中,个别用户的请求出现了502或者504.因此我们团队也经常受到用户的反馈,这里可以大致和大家澄清一下 ...
- PreTranslateMessage(MSG* pMsg) 中 break 与return的区别
程序一: BOOL CMyRichEditView::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (pMsg->me ...
- while 中 break 与 continue 的区别
break的用法: i = 0 while i<6:i += 1if i == 4:break;print(i) 输出: 1 2 3 i 的初值是 0 ,循环一次数值就加 1 ,一直加到 i== ...
- Java中 break continue return 的区别
1.break break :跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环: for (int i = 0; i < 10; i++) { i ...
- python中break和continue的区别_python中break和continue的区别
原博文 2017-08-01 09:56 − break和continue 1.break 意思为结束循环 例: i = 0 while i<10: i+=1 if i==5: #当i=5时,结 ...
- break和continue区别python_1、Python中break和continue的区别
******************** 自己的小总结!大神们不要见笑,刚初学Python *************************** 1.在Python中,break是结束本次循环.而c ...
- java中break和return的区别_java 中return和break的区别
在java的方法中,分为带返回参数和无返回参数两种方法.在带返回参数的方法体中,需要用return来返回该参数并表示该方法体执行完毕,该方法体中return后的语句将不会被执行.在无返回参数的方法中, ...
- nginx中root和alias的区别
今天使用nginx搭建了一个网站,访问后出现404错误Not found. 上网查了一下原因,是由于nginx的配置不对.因为我是有两个web目录,这两个目录在不同的位置上.而且我不想把两个目录合并在 ...
最新文章
- MySQL Router实现MySQL的读写分离
- CSS基础篇--强制性换行word-break与word-wrap的使用
- java 复制剪贴板_java_swing复制粘贴、剪贴板
- MySQL高级 - 常用工具 - mysql
- base64编码以及url safe base64是怎么工作的?
- java 数字字母进位_使用带有进位的8085微处理器将两个8位数字相乘
- python列表写入字典_python – 将列表字典写入CSV文件
- 【BZOJ1037】【codevs1410】生日聚会,DP
- Java 程序员最爱 Kotlin?
- 安装Linux系统的一些问题记载
- ThinkPHP在IIS下配置ISAPI伪静态去掉index.php
- Autodesk AutoCAD 2022 产品系列已发布(附下载)
- 朗文词典第五版安装详细步骤
- D-GAN用于时空预测的深度生成对抗网络
- 【sublime】sublime添加浏览器预览快捷键
- Wi-Fi 6 BSS着色和空间重用白皮书
- 打开Adobe Premiere Pro提示“由于找不到msvcp110.dll,无法继续执行代码。重新安装程序可能会解决此问题”。【方法适用于几乎所有dll文件丢失时】
- week6 视频分镜
- 微信域名防封技术,我们应该如何解决屏蔽拦截
- Windows7系统服务详解
热门文章
- Python 处理各种编码的字符串
- linux/unix上 printf输出带颜色字体(有意思)-转
- [Java] 蓝桥杯 BASIC-9 基础练习 特殊回文数
- 蓝桥杯 BASIC-5 基础练习 查找整数
- 音乐 美术 计算机期末考试表,贵阳初中学业水平考试信息技术、音乐、美术考评标准出炉!...
- Google I/O 2019 将于5月7日举办
- csharp datagridview to a datatable,a dataset
- ES5-String-indexOf/lastIndexOf
- Linux(ubuntu)下切换root用户
- 代理网络中安装tomcat的注意事项