• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

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

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

展示如下: 
图片描述

 

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

Pingbacks已打开。

引用地址

暂无评论

发表评论