nginx中的location匹配规则
概述:
1. location在nginx配置文件中的作用是根据用户请求的URI来执行不同的应用。
2.URI的定义:标识、定位任何资源的字符串
协议://域名/目录a/目录b/文件c
http://www.baidu.com/dowload/nginx/nginx.conf
一、location写法
location = / { # 精确匹配 / ,主机名后面不能带任何字符串只能是 / ,例如 ‘ www.abc.com/ ’ # 优先级: 最高。 [ configuration A ] } location / { # 匹配所有的地址 以 / 开头,能匹配到所有的规则。 # 优先级:最低。 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 优先级:仅次于正则表达式。 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/Abc 开头的地址,匹配符合以后,还要继续往下搜索 # 优先级:低于正则表达式,高于/documents/。 [ configuration CC ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求。 # 优先级:低于 ^~ 的匹配。 [ configuration D ] }
二、符号说明
= 开头表示精确匹配; 如: A 中只匹配根目录结尾的请求,后面不能带任何字符串.
^~ 开头表示uri以某个常规字符串开头,不是正则匹配;
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配;
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到;
三、location 顺序/优先级:
= > 完整路径 > ^~ 路径 > ~,~* 正则顺序 > 部分起始路径 > /