【问题标题】:In Nginx how to allow some IPs & allow all requests from mobile devices?在 Nginx 中如何允许某些 IP 并允许来自移动设备的所有请求?
【发布时间】:2016-08-10 01:57:05
【问题描述】:

我想要

1) 拒绝除10.1.1.1 之外的所有 IP 地址(来自浏览器)

2) 允许来自 android(或任何其他)设备的所有请求

我有以下 nginx 代码 sn-p,但它给出了错误

这里不允许使用“allow”指令

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

如何实现这一目标或任何替代方法?

【问题讨论】:

    标签: php nginx configuration


    【解决方案1】:

    基本上,如果客户端的 IP 不是 10.1.1.1,您想阻止最终用户 并且如果用户代理不是 Android

    对于所有其他条件,您希望提供正确的内容。因此,将以下内容放入 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。 如果 User-Agent 不是 android,则分配值 A。 仅当客户端的 IP 不是 10.1.1.1 时才分配值 NA。并且用户代理不是 Android。在这种情况下会返回 403 来阻止用户。

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 2020-12-29
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 2018-01-03
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多