ITPub博客

首页 > IT职业 > IT职场 > Nginx的Location优先匹配规则-如果出现多个~正则匹配,如何

Nginx的Location优先匹配规则-如果出现多个~正则匹配,如何

IT职场 作者:shatao2000 时间:2021-09-09 09:06:46 0 删除 编辑

Nginx正则匹配的优先级:

正则表达式(~ ~*)的优先级最后,如果有多个location的正则能匹配的话,则优先匹配同一个server中,配置在前面的location。

我们来作个验证:

测试1:调节两个location的位置,修改配置如下:

Nginx配置如下,建立如下目录及文件:

server {

    listen       80;

    server_name  192.168.8.198;

    location ~ .*.(txt|jpg|png)$ {

        root  /opt/www/1;

    }

    location ~ ^/download {

        root  /opt/www/2;

    }

}
mkdir /opt/www/1/download

mkdir /opt/www/2/download

echo "111111" > /opt/www/1/download/test.txt 
echo "222222" > /opt/www/2/download/test.txt 

验证:

浏览器: 访问这个地址(http://192.168.8.198/download/test.txt)

展示如下:
图片描述

测试2:调节两个location的位置,修改配置如下:

server {

    listen       80;

    server_name  192.168.8.198;

    location ~ ^/download {

        root  /opt/www/2;

    }

    location ~ .*.(txt|jpg|png)$ {

        root  /opt/www/1;

    }

}

验证:

浏览器: 访问这个地址(http://192.168.8.198/download/test.txt)

展示如下:
图片描述

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4003/viewspace-2799574/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-10-17

  • 博文量
    74
  • 访问量
    753