GeoIP

Ruslan Ermilov ru на nginx.com
Вт Сен 8 07:50:06 UTC 2015


On Tue, Sep 08, 2015 at 02:22:56AM -0400, agz wrote:
> map я использую. в секции http:
>     geoip_country /usr/share/GeoIP/GeoIP.dat;
>     map $geoip_country_code $allowed_country {
>     default yes;
>     US no;
>     UK no;
>     }
> Или что то другое Вы имели ввиду?

Можно одновременно определять страну и по списку:

    geo $geo_country {
        127.0.0.1  RU;
        10.0.0.0/8 RU;
    }

и по базе GeoIP:

    map $geo_country $country {
        '' $geoip_country_code;
        default $geo_country;
    }

Как это работает: если клиентского адреса нет в списке
geo, то страна ($country) определяется по базе GeoIP.

Blacklist по странам также можно сделать при помощи map:

    map $country $restricted {
	XX 1;
	YY 1;
	ZZ 1;
    }

Останется предпринять нужные действия:

    if ($restricted) {
        return 403;
    }



Подробная информация о списке рассылки nginx-ru