if , set, map ,rewrite, location

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;
}

Leave a Reply

Your email address will not be published. Required fields are marked *