Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何绕过nginx代理IP列表_Nginx_Nginx Reverse Proxy_Nginx Config_Whitelist_Bypass - Fatal编程技术网

如何绕过nginx代理IP列表

如何绕过nginx代理IP列表,nginx,nginx-reverse-proxy,nginx-config,whitelist,bypass,Nginx,Nginx Reverse Proxy,Nginx Config,Whitelist,Bypass,我有一个Nginx配置,重定向到保存页面: location / { ... if ($setholdingpage = 'True') { rewrite (^.*$) /holding-page last; } proxy_pass $backend; } 另外,我有一个IP列表,应该是白名单,而不是重定向到持有网页。如何做到这一点?您可以使用允许拒绝指令 如果我纠正了您的错误,白名单将以

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

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

另外,我有一个IP列表,应该是白名单,而不是重定向到持有网页。如何做到这一点?

您可以使用
允许
拒绝
指令

如果我纠正了您的错误,白名单将以某种形式成为您的
$setholdingpage
变量

试试这个

server {

error_page 403=@holding;

location / {
  allow 127.0.0.1;
  allow 192.168.1.0/24;
  deny all;

  proxy_pass http://backend;

}

location /@holding {
  root /path/to/your/holding/html;
  index holdingv1.html;
}

}
这会将未列入白名单的IP发送到您指定的错误页面。错误页面也可以位于
位置

没有测试,但这应该可以做到

参考资料:

您可以使用
允许
拒绝
指令

如果我纠正了您的错误,白名单将以某种形式成为您的
$setholdingpage
变量

试试这个

server {

error_page 403=@holding;

location / {
  allow 127.0.0.1;
  allow 192.168.1.0/24;
  deny all;

  proxy_pass http://backend;

}

location /@holding {
  root /path/to/your/holding/html;
  index holdingv1.html;
}

}
这会将未列入白名单的IP发送到您指定的错误页面。错误页面也可以位于
位置

没有测试,但这应该可以做到

参考资料:

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

geo $bypassip {
  default 0;

  64.233.160.0/19 1;
  66.102.0.0/20 1;
}
如果IP与列表中的IP匹配,则重写变量:

if ($bypassip = 1){
  set $setholdingpage False;
}
我使用类似的设置来阻止某些地理区域,但仍然允许谷歌爬虫访问我的网站。

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

geo $bypassip {
  default 0;

  64.233.160.0/19 1;
  66.102.0.0/20 1;
}
如果IP与列表中的IP匹配,则重写变量:

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

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

非常感谢您的帮助。我用这种方法,它的工作!非常感谢你的帮助。我用这种方法,它的工作!谢谢你的帮助。可能,这是一个很好的方法,但是我使用了“geo”,这个方法很有效。谢谢你的帮助。也许,这是一个很好的方法,但我使用了“geo”,这种方法很有效。