nginx根据ip跳转页面

场景:
1. 当有新服务或页面上线,需要进行线上测试,但不能影响用户,可以选择对开发部门的ip进行跳转到新的地址
2. 服务器维护需要对开发以外的ip跳转到维护的提示页
3. 针对不同地区的ip展示不同的首页效果(需要geoip模块配合)

可以通过使用过下面的配置实现上述场景

location / {
    if ($remote_addr ~* "223.93.188.66"){
            rewrite ^(.*) https://新的地址/ break;
    }
}

或者

location / {
    if ($remote_addr ~* ^223\.93\.188\.(.*?)$){
            rewrite ^(.*) https://新地址/ break;
    }
}

补充关于nginx的正则表达式

~ 区分大小写匹配

~* 不区分大小写匹配

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

^ 匹配的开头

$ 匹配的结尾

. * ?等需要转义

你可能感兴趣的:(运维,nginx)