Nginx 封锁国家的最佳解决方案?

Nginx 封锁国家的最佳解决方案?,nginx,ip,Nginx,Ip,我有一个web应用程序,我想在上面阻止中国、罗马尼亚等国家。我还想阻止大量VPN,如hotspot shield、Hidemyas、cyberghost等。我有一个约5500个CIDR格式IP地址的大列表,总共约3.4亿个IP地址。我意识到这是一个巨大的数字,可能没有效率。我的网站每月获得约2000万页面浏览量 不管怎样,我现在要做的是: 我有nginx,只是在server指令中包含了一个大约80kb的大文本文件。它实际上是在工作,并没有真正注意到性能的影响。我仍然想知道是否有更有效的方法来做到

我有一个web应用程序,我想在上面阻止中国、罗马尼亚等国家。我还想阻止大量VPN,如hotspot shield、Hidemyas、cyberghost等。我有一个约5500个CIDR格式IP地址的大列表,总共约3.4亿个IP地址。我意识到这是一个巨大的数字,可能没有效率。我的网站每月获得约2000万页面浏览量

不管怎样,我现在要做的是: 我有nginx,只是在server指令中包含了一个大约80kb的大文本文件。它实际上是在工作,并没有真正注意到性能的影响。我仍然想知道是否有更有效的方法来做到这一点

我不想要的是:只接受某些国家的访问。数以百计的国家访问我的网站,所以这是不可行的


谢谢

您的问题不清楚您使用的是什么Nginx配置指令。无论如何,在Nginx中做这些事情最有效的方法是——你必须在
中包含
一个包含IP块/范围的大型文本文件到
geo
,但在内部Nginx会通过这个表进行非常快速的查找。

如果列表已经优化(在适用的情况下进行排序和范围合并)如果您使用的是nginx最有效的方法(如另一个答案中的geo模块),那么您可以做的唯一一件事就是创建防火墙条目(iptable ect…),它将计算是否应该在更低的级别建立连接,通常,在使用链上的资源之前,先执行内核操作和停止操作。换句话说,nginx甚至不需要处理连接并使用其资源来检查它是否来自正确的国家。

如果我是你,我会使用对等block-100列表来帮助你。不断更新。此外,如果站点被阻止,但您需要临时访问,也允许访问