nginx location规则

2021-01-28

日常配置nginx,需要针对特定的路径来进行转发,接下来对常用对location配置进行简单的记录

location语法

location [modifier] [URI] {
  ...
}

[modifier]的可选值如下

none 如果不写修饰符,那么与[URI]路径开始匹配

location /api {
  ...
}

www.a.com/api [匹配]
www.a.com/api/login [匹配]

= 精确匹配

location = /api {
  ...
}

www.a.com/api [匹配]
www.a.com/api/login [不匹配]
www.a.com/b/api [不匹配]

~ 区分大小写正则匹配

location ~ /api {
  ...
}

www.a.com/api [匹配]
www.a.com/Api [不匹配]

~* 不区分大小写正则匹配

location ~* /api {
  ...
}

www.a.com/a/b/api [匹配]
www.a.com/ApI [匹配]
www.a.com/b/API [匹配]

^~ 字符串开头匹配,如果匹配到了,就不进行后续到匹配

location ^~ /api {
  ...
}

www.a.com/api [匹配]
www.a.com/api/login [匹配]
www.a.com/bpi [不匹配]

!~ 不匹配(区分大小写)
!~* 不匹配(不区分大小写)

@ nginx内部跳转

location = /index.html {
  error_page 404 @index_error;
}

location @index_error {
  ...
}

nginx实战

前后端分离项目经常会遇到一个场景,前端请求后端时候,需要移除子路径,比如 https://host/api/users 转发到 https://otherhost/users ,那么可以通过 proxy_pass 指令来解决

location ~* ^/api/ {
  proxy_pass https://otherhost/
}

当然也可以配合 rewrite 来解决

location ~* ^/api/ {
  rewrite ^/api/(.*) /$1 break;
  proxy_pass https://otherhost;
}

注意:proxy_pass 最后面的 / 是有区别的

本文为原创,未经授权,禁止任何媒体或个人自媒体转载
商业侵权必究,如需授权请联系340443366@qq.com
标签:

评论

Loading...

最新评论

相关推荐

nginx常用配置
nginx是什么 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。可以管...
理解v8的内存管理
V8的内存管理模式 一个运行的程序通常是通过在内存中分配一部分空间来表示的。这部分空间被称为驻留集(Resident ...
vue2+vuex+vue-router+webpack+es6搭建项目架构
vue全家桶包括vue,vue-router,vuex等模块,vue负责渲染,vue-route负责路由,vuex负责状...
scroll-top-icon