一.last & break

(1)last 和 break 当出现在location 之外时,两者的作用是一致的没有任何差异。

注意一点就是,他们会跳过所有的在他们之后的rewrite 模块中的指令,去选择自己匹配的location

(2)last 和 break 当出现在location 内部时,两者就存在了差异

last: 使用了last 指令,rewrite 后会跳出location 作用域,重新开始再走一次刚刚的行为

break: 使用了break 指令,rewrite后不会跳出location 作用域。它的生命也在这个location中终结。

网友解释通俗易懂:

    last:
        重新将rewrite后的地址在server标签中执行
    break:
        将rewrite后的地址在当前location标签中执行
  nginx官方解释:
  last:
         stops processing the current set of ngx_http_rewrite_module directives followed by a search for a new location matching     
         the changed URI;
  break:
        stops processing the current set of ngx_http_rewrite_module directives;

二、permanent & redirect:

permanent: 永久性重定向。请求日志中的状态码为301

redirect:临时重定向。请求日志中的状态码为302

从实现功能的角度上去看,permanent 和 redirect 是一样的。不存在好坏。也不存在什么性能上的问题。但是对seo会有影响,这里要根据需要做出选择

在 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次。

注意:配置last 在跨域的时候效果和redirect一致,都是返回302状态码,请求地址也发生改变

nginx last 和break redirect 和 permanent的更多相关文章

  1. nginx中的break与last指令区别

    很多人资料说,last与break的区别在于,last并不会停止对下面location的匹配.我理解上模模糊糊.今天自己来测验了一下. rewrite 指令末尾的break应该与单独写break作用是 ...

  2. nginx url rewrite break和last的区别

    break 将重写的URI作为一个新的URI,在本块中继续处理,将重写后 的地址在当前location块中处理,不会将新的URI转向到其他location块中 last,终止继续在本location块 ...

  3. Nginx中的break和last

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

  4. Nginx rewrite 中break与last指令的区别

    location /break/ { rewrite ^/break/(.*) /test/$1 break; return 402; } location /last/ { rewrite ^/la ...

  5. Nginx配置中last和break及permanent和redirect的区别

    一.不写last和break 流程就是依次执行这些rewrite rewrite break - url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变 ...

  6. Nginx rewrite URL examples with and without redirect address

    原文地址: http://www.claudiokuenzler.com/blog/436/nginx-rewrite-url-examples-with-without-redirect-addre ...

  7. Nginx Redirect Websocket

    I want to redirect my websocket to another server. As we known, nginx command rewrite or redirect ca ...

  8. nginx rewrite规则last与break的区别

    概要:break和last都能阻止继续执行后面的rewrite指令,last如果在location下的话,对于重写后的URI会重新匹配location,而break不会重新匹配location. 区别 ...

  9. 9. nginx服务实验笔记

    LNMP安装与配置   Nginx与apache.lighttp性能综合对比,如下图:     一.系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu系统 需要3GB以上硬盘 ...

随机推荐

  1. 从n个数中随机选取m个

    咋一看,这是个很简单的问题,但是如果n是个不确定的数呢?比如服务器每天会收到数以亿计的请求,但是目前服务器端不希望保存所有的请求,只想随机保存这些请求中的m个.试设计一种算法,能够使服务器实时保存m个 ...

  2. 数据对接—kettle使用之四

    上一篇介绍了表输出插件,并通过实例介绍插件的简单使用,如果有这样的需求大家可以参考一下并深入研究插件的其它细节设置.这一篇我们介绍和表输出对应的插件(表输入)的使用. 表输入: 1. 从步骤插入数据: ...

  3. stingray 页面布局与设计

    前言 前面我们已经了解了系统中的HTML组件,现在我们就可以开始用这些组件来设计页面了,他们就像是一块块小积木,我们要盖起高楼大厦. 两种页面容器组件 我们将关联性较强的多个HTML组件放到一个容器组 ...

  4. Percona-XtraBackup系列一:安装 perl(Time::HiRes) is needed by percona-xtrabackup-2.2.10-1.el6.x86_64

    1:在percona官网下载最新的Xtrabackup http://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.10/bi ...

  5. 路由器mtu值设置

    MTU=最大传输单元 单位:字节 英文:Maximum Transmission Unit”我们平时上网时的各种操作,都是通过一个又一个“数据包”传输来实现的.而MTU指定了网络中可传输数据包的最大尺 ...

  6. Shell与Bash

    1:Shell编程的本质 Shell的意思是“壳程序”,它是一个视窗,供我们交互. 系统中有许多负责不同功能的可执行文件,他们被添加到PATH变量后,我们就可以在Shell中通过命令行调用.这些这些可 ...

  7. CentOS6.x 图形界面(gnome)安装

    CentOS6默认的安装选项 Desktop :基本的桌面系统,包括常用的桌面软件,如文档查看工具. Minimal Desktop :基本的桌面系统,包含的软件更少. Minimal :基本的系统, ...

  8. V-rep学习笔记:机器人模型创建1—模型简化

    要进行机器人仿真首先需要得到机器人的几何模型.我们可以直接通过VREP中提供的基本几何体来搭建一个简易的机器人[Menu bar --> Add --> Primitive shape - ...

  9. FTP下载工具

    开源的FTP下载工具,FTP搬运工.... 01.FileZilla_3.21.0_win64 官方地址: https://filezilla-project.org/ 下载地址: http://pa ...

  10. Linux命令行监控网口流量

    1.ifconfig [网卡名] ifconfig eth0 . 2. /proc/net/dev cat /proc/net/dev . 3. 使用watch命令配合 ifconfig, cat / ...