Ниже пойдет текст достойный пера К.О.
Китайский трафик велик и беспощаден. Когда какая-нибудь смешная или не очень картинка попадает в китайские блоги, провайдер colocation начинает обижаться и рассказывать про несоответствие соотношений 3 к 2 российского и зарубежного трафика.
В очередной раз словив попадание ню фотосета с одного из проектов на просторы чайнанета (боже мой, сколько у них популярных блогов) и посчитав, во что может выльется эта экспансия на восток, решил ограничить наших глубокоуважаемых желтокожих братьев по планете.
Примеров реализации есть несколько (ngx_http_geo_module, ngx_http_geoip_module или обычным deny), наиболее эффективный с помощью ngx_http_geo_module и базы wipmania (http://www.wipmania.com/ru/base/)
Облегчение на одном из серверов.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/60b/ec2/35e/60bec235e1336a5fdd3e8d447e230638.png)
Если нужно закрыться ото всех, оставив несколько стран, то поможет такая реализация
UPD! В этом случае правильнее выдавать 444, спасибо rolltin
Китайский трафик велик и беспощаден. Когда какая-нибудь смешная или не очень картинка попадает в китайские блоги, провайдер colocation начинает обижаться и рассказывать про несоответствие соотношений 3 к 2 российского и зарубежного трафика.
В очередной раз словив попадание ню фотосета с одного из проектов на просторы чайнанета (боже мой, сколько у них популярных блогов) и посчитав, во что может выльется эта экспансия на восток, решил ограничить наших глубокоуважаемых желтокожих братьев по планете.
Примеров реализации есть несколько (ngx_http_geo_module, ngx_http_geoip_module или обычным deny), наиболее эффективный с помощью ngx_http_geo_module и базы wipmania (http://www.wipmania.com/ru/base/)
Облегчение на одном из серверов.
![image](https://habrastorage.org/getpro/habr/post_images/60b/ec2/35e/60bec235e1336a5fdd3e8d447e230638.png)
http {
...
geo $geo {
include geoip.conf;
default XX;
}
}
server {
if ($geo = CN)
{
return 403;
}
...
}
Если нужно закрыться ото всех, оставив несколько стран, то поможет такая реализация
server {
...
#дефолтовый флаг
set $a 0;
if ($geo = RU)
{
set $a 1;
}
if ($geo = UA)
{
set $a 1;
}
#неизвестные ipшки пусть ходят
if ($geo = XX)
{
set $a 1;
}
if ($a = 0)
{
return 403;
}
...
}
UPD! В этом случае правильнее выдавать 444, спасибо rolltin