location的名字可以是字符串(被称为prefix locations)或者正则表达式。主要的修饰符
有=,@,~,~*,^~
正则表达式分为~*(不区分大小写)和~(区分大小写)2种情况。
nginx在查找匹配的过程中,首先在prefix locations中查找字符串最长匹配的location,
然后按照配置文件的顺序再检查正则表达式的locations,如果有匹配的location则
停止搜索并使用,如果没有则使用最符合的prefix location。
1,location可以被嵌套,正则匹配中的captures可以作为变量来使用。
2,如果匹配的prefix location中包含“^~”修饰符则不会再进行正则的匹配查询。
3,如果prefix location中包含“=”修饰符则为精确匹配,同样会停止匹配查询其他location。
4,"@"前缀定义命名location,这样的location只用作内部请求转向,并且不能包含嵌套或被嵌套。
5,如果一个prefix location以/结尾,并且匹配的请求需要经过proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass,memcached_pass
处理,如果请求的URL中末尾不带/则会生成一个301答复转向到末尾带/的URL请求上。可以通过创建一个精确的prefix location来避免。
location = / {
[ configuration A ]
}
location / {
[ configuration B ]
}
location /documents/ {
[ configuration C ]
}
location ^~ /images/ {
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {
[ configuration E ]
}
阅读(1246) | 评论(0) | 转发(0) |