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相关推荐

  1. Nginx中的break和last

    rewrite中的break和last 两个指令用法相同,但含义不同,需要放到rewrite规则的末尾,用来控制重写后的链接是否继续被nginx配置执行(主要是rewrite.return指令).示例 ...

  2. Nginx中last和break redirect和permanent区别和联系

    参考:https://www.phpmianshi.com/?id=98 一.last & break (1)last 和 break 当出现在location 之外时,两者的作用是一致的没有 ...

  3. Nginx中的rewrite指令(break,last,redirect,permanent)

    转载自:Nginx中的rewrite指令(break,last,redirect,permanent) rewite 在server块下,会优先执行rewrite部分,然后才会去匹配location块 ...

  4. 实例演示Nginx重写(Rewrite)类型last、break、redirect和permanent的区别

    本文使用之前制作的Docker容器<<Docker案例:搭建nginx服务>>演示Nginx四种重写类型的区别和效果,如果尚未构建Docker服务可参考之前的文章,或者自建Ng ...

  5. Nginx中的location规则与rewrite重写(详解)

    内容预知 1.Nginx中location与rewrite 1.1 location与rewrite常用的正则表达式 1.2  location与rewrite的联系和区别 2.location的匹配 ...

  6. web服务之Nginx中的location匹配与rewrite重写跳转

    文章目录 常见的Nginx正则表达式 location location分为三类 location常用的匹配规则 location 优先级 location 示例说明 三个匹配规则定义 rewrite ...

  7. centos 7.6——Nginx中rewrite模块应用(location)——基于域名的跳转等

    centos 7.6--Nginx中rewrite模块应用(location)--基于域名的跳转等 文章目录 centos 7.6--Nginx中rewrite模块应用(location)--基于域名 ...

  8. Nginx中rewrite的用法详解

    文章目录 一.rewrite简介 1.1 rewrite跳转场景 1.2 rewrite跳转实现过程 1.3 rewrite实际场景 1.4 nginx正则表达式 二.rewrite命令 2.1 re ...

  9. 308 Permanent Redirect问题解决

    2021-11-17-308 Permanent Redirect 问题描述: postman测试接口,数据正常返回,代码当中使用restTemplate调用接口报错,显示308永久的重定向308 P ...

  10. FeignClient调用报308 Permanent Redirect

    1.抛出问题: FeignClient调用Rest接口报308错误,返回错误信息如下: <html> <head><title>308 Permanent Redi ...

最新文章

  1. 重温目标检测--YOLO v2 -- YOLO9000
  2. Android短信拦截2019,关于征集2019年度信息科学领域重大项目立项建议的通告
  3. 初学Java Web(1)——Web概述
  4. Gradle 引入本地定制 jar 包,而不使用坐标下载 jar 包的方法
  5. Java 时间处理整理
  6. python怎么安装requests模块_python安装requests第三方模块
  7. php书店网站模板源代码_网上书店整套html模板
  8. hsf 架构_HSF源码剖析
  9. 达内CEO受邀出席搜狐“2011职业教育高峰论坛”
  10. 问题:微信小程序开发之 --- app.js文件介绍
  11. 你选的低功耗MCU是不是真省电?看后请自测
  12. 开发那些事儿:在Flv.js前端播放器中解析并绘制H.264编码中的SEI信息
  13. 【网络工程师】<软考中级>局域网与城域网
  14. 停车辅助系统的技术和变化
  15. 一个阳光女孩儿的来信——网上答疑(21)
  16. 【信号处理】心电信号PQRST峰值检测matlab工具箱
  17. Linux系统下adb驱动安装步骤 及 问题总结
  18. (CVPR 2018) 3D Semantic Segmentation with Submanifold Sparse Convolutional Networks
  19. SQL JOIN详解、注意事项 以及 on where 的区别
  20. 打印空心菱形c语言编程,用C语言打印空心菱形问题

热门文章

  1. 精进:如何成为一个很厉害的人---书摘(转)
  2. myBatis抛出异常Result Maps collection already contains value ...
  3. [Everyday Mathematics]20150203
  4. 判断指定目录下的所有[图片]的扩展名, 并打印出文件名.
  5. JVM堆内存控制/分代垃圾回收
  6. Python 学习第十八天 js 正则及其它前端知识
  7. 【Xamarin 挖墙脚系列:Xamarin SDK开源了................】
  8. Android音频底层调试-基于tinyalsa
  9. js aop 拦载实现
  10. [转]java Socket InputStream 阻塞 问题