Под GeoIP принято понимать набор программных инструментов, позволяющих определить географическое положение клиента по его IP адресу.
Во-первых, у MaxMind есть несколько видов GeoIP баз. В общем случае они делятся на базы со странами и базы с городами. В базах со странами городов нет ), в базах с городам есть не только города но и всякие там metro коды (отдельная ветка баз).
Эти БД нужны, например, для фильтрации трафика по странам, отключению лицензионного контента в России, например, и пр. Для точного таргетинга бесплатные базы без городов, например, не подходят.
В базах по городам данных, например, больше, такие базы чуть тяжелее.
Есть бесплатные и платные версии баз maxmind. Удивительно, но факт - в платных версиях больше данных, например, и они точней, например.
http://youtu.be/UJkvjC17epQ.
Установка бесплатной базы maxmind с данными о городах
1. Настраиваем nginxsudo vim /etc/nginx/nginx.conf
http {
geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;
...
2. В fastcgi_params добавляем
sudo vim /etc/nginx/fastcgi_params
### SET FASTCGI Variables ###
fastcgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
fastcgi_param GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
fastcgi_param GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;
для uwsgi соответственно
sudo vim /etc/nginx/uwsgi_params
### SET UWSGI Variables ###
uwsgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
3. Качаем лайт базу (безвозмездно, значит даром)
wget -c http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
куда-нибудь в /usr/local/share/GeoIP/
4. Ставим пакеты - не знаю, когда это нужно, т.к. у меня на убунте и федоре уже стояли.
sudo apt-get install geoip-bin libgeoip-dev libgeoip1
5. Перезапускам nginx
6. Теперь можно использовать переданные модулем nginx заголовки:
GEOIP_CITY
GEOIP_CITY_CONTINENT_CODE
GEOIP_CITY_COUNTRY_CODE
GEOIP_CITY_COUNTRY_CODE3
GEOIP_CITY_COUNTRY_NAME
GEOIP_LATITUDE
GEOIP_LONGITUDE
GEOIP_POSTAL_CODE
GEOIP_REGION
Вот пример данных из лайт базы для моего рабочего IP
'GEOIP_CITY': '',
'GEOIP_CITY_CONTINENT_CODE': 'EU',
'GEOIP_CITY_COUNTRY_CODE': 'RU',
'GEOIP_CITY_COUNTRY_CODE3': 'RUS',
'GEOIP_CITY_COUNTRY_NAME': 'Russian Federation',
'GEOIP_LATITUDE': '60.0000',
'GEOIP_LONGITUDE': '100.0000',
'GEOIP_POSTAL_CODE': '',
'GEOIP_REGION': ''
Не очень точно, да?
Использование платных версий Maxmind ДБ
Для загрузки баз воспользуйся логопасом, у вас ведь есть подписка MaxMind? http://www.maxmind.com/app/account. Загрузить БД можно по адресу: http://www.maxmind.com/app/download_files. Думаю, опытный пират найдет способ скачать платную версию MaxMind с rutracker.org, но я ни коим образом не поощряю подобное поведение ;).1. GeoIP Country binary database - база данных стран
http {
geoip_country GeoIP.dat;
...
Доступные параметры:
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
2. GeoIP City binary database - база данных городов
http {
geoip_city /usr/local/share/GeoIP/GeoIPCity.dat;
...
Пример ответа для того же IP
'GEOIP_CITY': 'Moscow',
'GEOIP_CITY_CONTINENT_CODE': 'EU',
'GEOIP_CITY_COUNTRY_CODE': 'RU',
'GEOIP_CITY_COUNTRY_CODE3': 'RUS',
'GEOIP_CITY_COUNTRY_NAME': 'Russian Federation',
'GEOIP_LATITUDE': '55.7522',
'GEOIP_LONGITUDE': '37.6156',
'GEOIP_POSTAL_CODE': '',
'GEOIP_REGION': '48'
Чуть точней, но все равно "та же х**ня, Миша".
Можно использовать обе базы (country и city) одновременно, но особого смысла в этом нет ).
см. http://wiki.nginx.org/HttpGeoipModule или http://nginx.org/ru/docs/http/ngx_http_geoip_module.html#geoip_country
Важный момент: есть подозрения, что мобильный трафик льется через крупные города, так что если вы планируете фильтровать трафик из российской глубинки - вас ждет разочарование.
Можно использовать обе базы (country и city) одновременно, но особого смысла в этом нет ).
см. http://wiki.nginx.org/HttpGeoipModule или http://nginx.org/ru/docs/http/ngx_http_geoip_module.html#geoip_country
Важный момент: есть подозрения, что мобильный трафик льется через крупные города, так что если вы планируете фильтровать трафик из российской глубинки - вас ждет разочарование.
Очевидное наблюдение: MaxMind БД для использования в больших международных проектах с не очень высокой точностью геотаргетирования.
При платной подписке вам дают возможность скачать все данные из базы в формате CSV. В нашем проекте эти данные используются для установки параметров таргетирования баннеров клиентами через соответствующую панель на сайте.
При платной подписке вам дают возможность скачать все данные из базы в формате CSV. В нашем проекте эти данные используются для установки параметров таргетирования баннеров клиентами через соответствующую панель на сайте.
Комментариев нет:
Отправить комментарий