为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
PHP Python Linux

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

展示如下:
图片描述

点击查看更多内容
9人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消