nginx ip_hash 和 IP 块排除

nginx ip_hash 和 IP 块排除

我在 nginx 中使用上游 ip_hash。我的配置设置如下:

upstream example_upstream {
  ip_hash;
    server example1.com:80 max_fails=0 weight=50;
    server example2.com:80 max_fails=0 weight=50;
}

此配置运行正常。但是,我想排除一些 IP 块。我该怎么做?

谢谢。

答案1

您应该能够在 nginxgeo模块的帮助下做到这一点:

http级别上,您可以定义地理封锁:

geo $my_upstream {
    default example_upstream;
    192.168.1.0/24 example1.com:80;
}

然后$my_upstream变量将包含一个适合proxy_pass语句的值,您可以像这样使用它:

proxy_pass http://$my_upstream;

此外,您还需要upstream问题中的阻止。

相关内容