在Heroku上的NGINX中使用`geo`指令

问题描述

GitHub issue复制:

请参阅下面nginx.conf.erb的相关区域。我已经在我的计算机上使用nginx和127.0.0.1在本地测试了类似的内容,因此我相信我正确地使用了这些指令。但是,当我添加包含IP地址的CIDR组并将其放在Heroku dyno上时,仍然可以访问我的站点。

有什么想法为什么不能正确地找到它或我缺少了什么?此功能在Heroku上不起作用吗?

http {
  geo $test_group {
    default 0;
    1.2.3.4/22 1; # this includes my local IP address
  }
  server {
    location / {
      if ($test_group) {
        return 418 "short AND stout";
      }
    }
  }
}

我的最佳猜测是,NGINX在幕后进行了大量的IP转发。例如,如果我这样做了,curl -i -H "X-Forwarded-For: 1.2.3.4" "https://my-cool-app.herokuapp.com"仍然可以看到我的真实IP,但它不会被NGINX规则获取。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)