Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87865
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 157
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-24 16:42
个人简介

已经工作许多年了。

文章分类

全部博文(21)

文章存档

2017年(10)

2015年(3)

2013年(8)

我的朋友

分类: 系统运维

2017-06-23 15:54:19

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 ]
}
阅读(1214) | 评论(0) | 转发(0) |
0

上一篇:使用strace, ltrace寻找故障原因的线索

下一篇:没有了

给主人留下些什么吧!~~