location 正则的使用方式有以下几种
location [=|~|~*|^~] /uri/ { … }
‘=‘ 前缀,将只执行严格匹配。如果这个查询匹配,那么将停止搜索并立即处理这个请求。
‘~‘ 前缀, 区分大小写的匹配。
‘~*‘ 前缀,不区分大小写的匹配。
‘^~‘ 前缀,如果路径匹配那么不测试正则表达式。
location = / {
# 只匹配 / 查询。
[ configuration A ]
}
location / {
# 匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration B ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以 gif、jpg 或 jpeg 结尾的请求。然而所有 /images/ 目录的请求将使用 Configuration C。
[ configuration D ]
}
例如匹配/upload下的所有图片并代理至www.exp.com,写法如下:
location ~* /upload/(.*)\.(png|jpg|gif|swf|ico)$ {
proxy_set_header Host www.exp.com;
rewrite /upload/(.*) /upload/$1 break;
proxy_pass http://www.exp.com;
}
时间: 2024-11-03 20:59:00