Nginx中break与last的区别详析

 更新时间:2021年01月17日 10:03:08   作者:入门小站  
这篇文章主要给大家介绍了关于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。

浏览器

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区别的文章就介绍到这了,更多相关Nginx中break与last区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • OpenResty是什么,OpenResty和Nginx的区别?

    OpenResty是什么,OpenResty和Nginx的区别?

    Nginx作为一款轻量级、高性能的Web服务器,传统局限性也很明显:静态配置、逻辑扩展依赖C模块开发,使得它在需要动态业务逻辑的场景中显得捉襟见肘,<BR>而OpenResty的出现,打破了这一僵局,它通过将Lua脚本深度集成到Nginx中,将“静态代理服务器”升级为“动态应用平台”
    2025-04-04
  • Nginx七层负载均衡的实现示例

    Nginx七层负载均衡的实现示例

    七层负载均衡它是在应用层,那么它可以完成很多应用方面的协议请求,本文主要介绍了Nginx七层负载均衡的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Nginx实现TCP和UDP代理的方法步骤

    Nginx实现TCP和UDP代理的方法步骤

    Nginx 1.9.13 及以上版本支持TCP/UDP代理功能,通过配置监听端口、后端服务器地址等参数,实现客户端请求的转发和响应的返回,下面就来介绍一下如何实现,感兴趣的可以了解一下
    2024-12-12
  • Nginx捕获并自定义proxy_pass返回的错误问题

    Nginx捕获并自定义proxy_pass返回的错误问题

    这篇文章主要介绍了Nginx捕获并自定义proxy_pass返回的错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • nginx location块配置小结

    nginx location块配置小结

    nginx可以通过配置文件中的location指令来定义不同的请求匹配规则和处理逻辑,也就是描述不同请求资源在服务器的位置或者配置代理转发路径,这篇文章主要介绍了nginx location块配置,需要的朋友可以参考下
    2024-03-03
  • nginx反向代理后无限重定向的问题解决方法

    nginx反向代理后无限重定向的问题解决方法

    这篇文章主要为大家介绍了nginx反向代理后无限重定向的问题解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Nginx 配置 WebSocket 代理的操作过程

    Nginx 配置 WebSocket 代理的操作过程

    这篇文章主要介绍了Nginx 配置 WebSocket 代理的操作过程,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • 详解Nginx 动态 DNS 反向代理的几种写法

    详解Nginx 动态 DNS 反向代理的几种写法

    这篇文章主要介绍了详解Nginx 动态 DNS 反向代理的几种写法,详细的介绍了Nginx 动态 DNS 反向代理的4种方法,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • nginx实现一个域名配置多个laravel项目的方法示例

    nginx实现一个域名配置多个laravel项目的方法示例

    这篇文章主要介绍了nginx实现一个域名配置多个laravel项目的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • nginx设置资源请求目录的方式详解

    nginx设置资源请求目录的方式详解

    最近有一个需求.就是url指定路径下访问服务器的静态资源,这篇文章主要给大家介绍了关于nginx设置资源请求目录的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05

最新评论