我试图使用以下代码阻止国家/地区nginx.conf:
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allow_visit {
default yes;
RU no;
}
但我正在使用CLoudFLare / cdn service.so当我阻止一些国家。有时我无法登录我的系统.Coz cloudflare服务器可能在我的块国家。所以我应该从块国家列表中删除cloudflare ips。但我怎么能去做?
任何建议?
我在我的服务器上使用ubuntu 14.04 / nginx ..
*
现在我受到了攻击。你们都知道,网络战这样的我 应该快速解决这个问题。
*
提前致谢。
答案 0 :(得分:7)
CloudFlare允许您阻止某些国家/地区访问CloudFlare级别的网站。为此:
在任何攻击甚至命中您的服务器之前,这将阻止该国家/地区进入CloudFlare级别的所有网站。
如果您因任何原因需要使用Nginx解决方案阻止它而不是CloudFlare的防火墙,您可以查看在控制面板的“网络”选项卡下启用“IP地理位置”。这会将标题“HTTP_CF_IPCOUNTRY”添加到所有请求中,并在标题中包含国家/地区代码(即美国,英国,RU)。
如果您需要根据某些IP阻止任何请求,或者自己执行IP查找。然后,您应该使用默认的CloudFlare标头,该标头包含每个包含名为“CF-Connecting-IP”的客户端IP的请求。 对于将来的信息,CloudFlare在这里写了一篇关于它们如何处理标题的好article。
答案 1 :(得分:2)
如果您使用的是免费套餐(cloudflare),则无法获取访客的IP地址,因此请使用匹配IP< - >的geoip_country。国家不工作。
您应该在CloudFlare中启用IP Geolocation,然后配置nginx以阅读该国家/地区代码。
同时,请确保您的源服务器仅接受来自CloudFlare IP range的连接。
有关如何配置nginx的详细信息:http://nginxlibrary.com/using-cloudflare-for-country-blocking/