Nginx 中 last、break、permanent、redirect
2019独角兽企业重金招聘Python工程师标准>>>
一、last 和 break
1. last 和 break 当出现在location 之外时,两者的作用是一致的没有任何差异。
注意一点就是,他们会跳过所有的在他们之后的rewrite 模块中的指令,去选择自己匹配的location
Example:rewrite url1 url2 last; ①
rewrite url3 url4 last; ②
rewrite url5 url6 last; ③location ~ url2 ④
location ~ url4 ⑤
location ~ url6 ⑥
当① 这条rewrite 规则生效后,它后面的②和③ 将被跳过不做判断,而去直接选择 后面的location; 这里可能有一个疑问,那些指令输入rewrite 模块中的指令呢? 若是使用nginx本身,你就要到官网上去查询了。
但如果你使用的是tengine ,可以使用tengine -V 。会将你想要的信息列举出来。
2. last 和 break 当出现在location 内部时,两者就存在了差异。
last:使用了last 指令,rewrite 后会跳出location 作用域,重新开始再走一次刚刚的行为
break:使用了break 指令,rewrite后不会跳出location 作用域。它的生命也在这个location中终结。
Example:rewrite xxx1 yyy last; ⑦
rewrite xxx2 yyy last; ⑧
rewrite xxx3 yyy last; ⑨
rewrite xxx4 yyy last; ⑩location ~ url1
{rewrite url1 url2 last; ①
}location ~ url2
{rewrite url3 url4 break; ②fastcgi_pass 127.0.0.1:9000;
}
以上事例:
第一个location 中的 rewrite 指令处理完成之后,会跳出location ,再重新判断rewrite 7 ~ 9 的规则;
第二个location 中的 rewrite 指令处理完成之后,不会跳出location, 更不会重新判断rewrite 7 ~ 9 的规则。而只能将信息传递给后面的fastcgi_pass 或者proxy_pass 等指令
二、permanent 和 redirect
permanent:永久性重定向。请求日志中的状态码为301
redirect:临时重定向。请求日志中的状态码为302
从实现功能的角度上去看,permanent 和 redirect 是一样的。不存在哪里好,哪里坏;也不存在什么性能上的问题。 但从SEO(或者是百度爬你的网站时)。 类似于这样的东西,会对你到底是永久性重定向还是临时重定向感兴趣。了解不到,需要深入,就google 吧。
三、last、break VS permanent、redirect
在 permanent 和 redirect 中提到了状态码 301 和 302;
那么 last 和 break 相对于访问日志的请求状态码为 200
这两类关键字,我们能够眼睛看到的差异是什么呢? 我举个例子说明吧:
当你打开一个网页,同时打开debug 模式时,会发现301 和 302 时的行为是这样的。第一个请求301 或者 302 后,浏览器重新获取了一个新的URL ,然后会对这个新的URL 重新进行访问。所以当你配置的是permanent 和 redirect ,你对一个URL 的访问请求,落到服务器上至少为2次。
而当你配置了last 或者是break 时,你最终的URL 确定下来后,不会将这个URL返回给浏览器,而是将其扔给了fastcgi_pass或者是proxy_pass指令去处理。请求一个URL ,落到服务器上的次数就为1次。
转载于:https://my.oschina.net/u/4083081/blog/3017275
Nginx 中 last、break、permanent、redirect相关推荐
- Nginx中的break和last
rewrite中的break和last 两个指令用法相同,但含义不同,需要放到rewrite规则的末尾,用来控制重写后的链接是否继续被nginx配置执行(主要是rewrite.return指令).示例 ...
- Nginx中last和break redirect和permanent区别和联系
参考:https://www.phpmianshi.com/?id=98 一.last & break (1)last 和 break 当出现在location 之外时,两者的作用是一致的没有 ...
- Nginx中的rewrite指令(break,last,redirect,permanent)
转载自:Nginx中的rewrite指令(break,last,redirect,permanent) rewite 在server块下,会优先执行rewrite部分,然后才会去匹配location块 ...
- 实例演示Nginx重写(Rewrite)类型last、break、redirect和permanent的区别
本文使用之前制作的Docker容器<<Docker案例:搭建nginx服务>>演示Nginx四种重写类型的区别和效果,如果尚未构建Docker服务可参考之前的文章,或者自建Ng ...
- Nginx中的location规则与rewrite重写(详解)
内容预知 1.Nginx中location与rewrite 1.1 location与rewrite常用的正则表达式 1.2 location与rewrite的联系和区别 2.location的匹配 ...
- web服务之Nginx中的location匹配与rewrite重写跳转
文章目录 常见的Nginx正则表达式 location location分为三类 location常用的匹配规则 location 优先级 location 示例说明 三个匹配规则定义 rewrite ...
- centos 7.6——Nginx中rewrite模块应用(location)——基于域名的跳转等
centos 7.6--Nginx中rewrite模块应用(location)--基于域名的跳转等 文章目录 centos 7.6--Nginx中rewrite模块应用(location)--基于域名 ...
- Nginx中rewrite的用法详解
文章目录 一.rewrite简介 1.1 rewrite跳转场景 1.2 rewrite跳转实现过程 1.3 rewrite实际场景 1.4 nginx正则表达式 二.rewrite命令 2.1 re ...
- 308 Permanent Redirect问题解决
2021-11-17-308 Permanent Redirect 问题描述: postman测试接口,数据正常返回,代码当中使用restTemplate调用接口报错,显示308永久的重定向308 P ...
- FeignClient调用报308 Permanent Redirect
1.抛出问题: FeignClient调用Rest接口报308错误,返回错误信息如下: <html> <head><title>308 Permanent Redi ...
最新文章
- 重温目标检测--YOLO v2 -- YOLO9000
- Android短信拦截2019,关于征集2019年度信息科学领域重大项目立项建议的通告
- 初学Java Web(1)——Web概述
- Gradle 引入本地定制 jar 包,而不使用坐标下载 jar 包的方法
- Java 时间处理整理
- python怎么安装requests模块_python安装requests第三方模块
- php书店网站模板源代码_网上书店整套html模板
- hsf 架构_HSF源码剖析
- 达内CEO受邀出席搜狐“2011职业教育高峰论坛”
- 问题:微信小程序开发之 --- app.js文件介绍
- 你选的低功耗MCU是不是真省电?看后请自测
- 开发那些事儿:在Flv.js前端播放器中解析并绘制H.264编码中的SEI信息
- 【网络工程师】<软考中级>局域网与城域网
- 停车辅助系统的技术和变化
- 一个阳光女孩儿的来信——网上答疑(21)
- 【信号处理】心电信号PQRST峰值检测matlab工具箱
- Linux系统下adb驱动安装步骤 及 问题总结
- (CVPR 2018) 3D Semantic Segmentation with Submanifold Sparse Convolutional Networks
- SQL JOIN详解、注意事项 以及 on where 的区别
- 打印空心菱形c语言编程,用C语言打印空心菱形问题
热门文章
- 精进:如何成为一个很厉害的人---书摘(转)
- myBatis抛出异常Result Maps collection already contains value ...
- [Everyday Mathematics]20150203
- 判断指定目录下的所有[图片]的扩展名, 并打印出文件名.
- JVM堆内存控制/分代垃圾回收
- Python 学习第十八天 js 正则及其它前端知识
- 【Xamarin 挖墙脚系列:Xamarin SDK开源了................】
- Android音频底层调试-基于tinyalsa
- js aop 拦载实现
- [转]java Socket InputStream 阻塞 问题