我想
1) 拒绝除10.1.1.1
(来自浏览器)之外的所有IP地址
2) 允许来自android(或任何其他)设备的所有请求
我有下面的nginx代码片段,但它给出了错误
此处不允许使用"允许"指令
location / {
allow 10.1.1.1; //allow for this IP only and deny for all browser request
deny all;
if ($http_user_agent ~* "(android") { //allow for android user-agent for now
allow all; // allow access to all mobile users
}
.
.
.}
如何实现这一点或采取任何替代方案?
基本上,如果客户端的IP不是10.1.1.1,你想阻止最终用户如果用户代理不是安卓
对于所有其他条件,您希望提供正确的内容。因此,在vhost配置文件中放置以下内容:
if ($remote_addr != 10.1.1.1 ) {
set $myvar "N";
}
if ($http_user_agent !~* "android") {
set $myvar "${myvar}A";
}
if ($myvar = NA) {
return 403;
}
这里我使用了一个变量$myvar。
如果IP不是10.1.1.1,则指定值N。如果用户代理不是android,则指定值A。只有当客户端的IP不是10.1.1.1时,才分配值NA。而且用户代理不是安卓系统。在这种情况下,返回403以阻止用户。