nginx☞location

阅读量: zyh 2021-08-24 17:59:54
Categories: > Tags:

前言

开发有个小需求,因此需要添加一个额外的location

location /game_log/v1/  ##新加的额外location
location ~* /v1/(.*)

配置完后,发现不生效,查看日志,发现匹配到了第二个location。

location写法

优先级从高到低排序:

location = /path 精确匹配/path

location ^~ /path 匹配/path开头的

location ~ /path 匹配正则/path,区分大小写

location ~* /path 匹配正则/path,不区分大小写

location /path 匹配/path开头的

location / 匹配所有

原因

  1. 优先级

因为 ~*优先级大于,因此先匹配 location ~* /v1/(.*)

  1. 正则

/v1/(.*) 并不是匹配以/v1/开头的,而是只要包含/v1/即可匹配

/game_log/v1/包含v1,所以被 location ~* /v1/(.*)捕获

解决

方法1:

location /game_log/v1/改为location ^~ /game_log/v1/

方法2:

location ~* /v1/(.*)改为location ~* ^/v1/(.*)