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)