set $group "/var/lib/tomcat8.5/webapps/m.happyeasygo.com";
if ( $remote_addr ~* ^(.*)\.(.*)\.(.*)\.*[1,3,5,7]$){
set $group "/var/lib/tomcat8.5/webapps/m.happyeasygo.com.v2";
}
if ($cookie_newindex){
#if ($http_cookie ~* "newindex=([^;]+)1"){
set $group "/var/lib/tomcat8.5/webapps/m.happyeasygo.com.v2";
}
location / {
#proxy_pass http://newindex;
root $group;
}
以 = 开头,表示精确匹配;如只匹配根目录结尾的请求,后面不能带任何字符串。
以^~ 开头,表示uri以某个常规字符串开头,不是正则匹配
以~ 开头,表示区分大小写的正则匹配;
以~* 开头,表示不区分大小写的正则匹配
以/ 开头,通用匹配, 如果没有其它匹配,任何请求都会匹配到
主要区别在于rewrite是在同一域名内更改获取资源的路径,而location是对一类路径做控制访问或反向代理,可以proxy_pass到其他机器。
if ( $remote_addr = 58.23.234.3){
rewrite ^/heg_api/queryPaymentChannelV2.do$
/payment_api/payment/queryPaymentChannel.do break;
}