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

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

测试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优先匹配规则-如果出现多个~正则匹配,如何优先匹配?

【转自慕课】https://www.imooc.com

PHP

PHP内核之旅-1.生命周期

2022-3-3 14:29:38

PHP

wamp环境下虚拟域名配置

2022-3-3 14:33:28

搜索