Nginx开启平台与IP双访问控制

需求:

公司内网平台 钉钉可以使用,公司内网可以使用,公司VPN可以使用

开始思路:判断是否手机端,但是问题:手机浏览器可以访问。查看日志发现钉钉访问获取信息包含 DingTalk 字符

nginx不支持循环嵌套。


set $ding 0;
if ( $http_user_agent !~* "DingTalk" ){
set $ding "${ding}1";
}
if ($remote_addr !~ "123.x.x.x|39.x.x.x|39.105.x.x" ){
set $ding "${ding}2";
}
if ($ding = 012){
return 403;
}