程序地带

Nginx中break和last的区别


先说区别
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。


浏览器

image-20210114152319867


Nginx错误(error.log)日志
/nginx/html/bak/one failed (2: No such file or directory)

break表示重写后停止不再匹配location块。


访问 http://rumenz.com:88/last/one

命中location2,浏览器地址栏没有变,重新匹配到location3 image-20210114152832329


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格式化"]}';
}

关注微信公众号:【入门小站】,解锁更多知识点



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37335761/article/details/112689096

随机推荐

Tensorflow2.0 正则化操作

Tensorflow2.0 正则化操作

正则化操作importtensorflowastf#GPU设置gpu_list=tf.config.experimental.list_physical_devices("GPU...

廷益--飞鸟 阅读(370)

Java 修饰符

Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明ÿ...

for you is love 阅读(374)

财务RPA:办公室新来的机器人同事

财务RPA:办公室新来的机器人同事

财务工作就快被RPA机器人占领了?RPA正在为企业财务带来新的数字化转型浪潮。在RPA技术的不断扩展下,目前财务已经成为RPA应用规模最大的领域之一。RPA风靡于财务领域&...

sunsorrow 阅读(514)

常数除以0的极限是什么_【极限】第四节 极限运算法则

常数除以0的极限是什么_【极限】第四节 极限运算法则

定理例题极限运算法则就像加减乘除四则运算一样,是一种计算规则,那么极限也有属于它自己的一套计算规则。极限运算法则的常用定理定理1两个无穷小的和是无穷小有限个无穷小之和也是无...

初丿羊 阅读(931)

SpringBoot Quartz任务调度器

1.首先导入jar包,在这里我们使用的是springboot项目所以导入的jar包是springboot支持的​  <dependencies>​    <!--https://mv...

XW.class 阅读(472)