首页 > 解决方案 > 如何绕过 nginx 代理的 IPS 列表

问题描述

我有一个带有重定向到保存页面的 Nginx 配置:

    location / {
        ...
        if ($setholdingpage = 'True') {
        rewrite (^.*$) /holding-page last;
        }
           proxy_pass $backend;
    }

另外,我有一个 IP 列表,这些 IP 应该被列入白名单,而不是重定向到保留页面。怎么可能呢?

标签: nginxnginx-reverse-proxynginx-configwhitelist

解决方案


您可以使用 Nginx geo 模块根据客户端 IP 地址创建变量,您可以指定单独的 IP 地址或 CIDR 范围:

geo $bypassip {
  default 0;

  64.233.160.0/19 1;
  66.102.0.0/20 1;
}

如果 IP 与列表中的一个匹配,则覆盖您的变量:

if ($bypassip = 1){
  set $setholdingpage False;
}

我使用类似的设置来阻止某些地理区域,但仍然允许 Google 爬虫访问我的网站。


推荐阅读