Я пытаюсь настроить приложение Rails (развернутое на Passenger 3 + Nginx) для работы с GeoLite города MaxMind, но безрезультатно.Использование GeoIP с приложением Nginx/Passenger in Rails
# nginx.conf
# IP Geolocation - City Level
geoip_city /usr/share/GeoIP/GeoLiteCity.dat;
passenger_set_cgi_param HTTP_GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
passenger_set_cgi_param HTTP_GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
passenger_set_cgi_param HTTP_GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
passenger_set_cgi_param HTTP_GEOIP_REGION $geoip_region;
passenger_set_cgi_param HTTP_GEOIP_CITY $geoip_city;
passenger_set_cgi_param HTTP_GEOIP_POSTAL_CODE $geoip_postal_code;
passenger_set_cgi_param HTTP_GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
passenger_set_cgi_param HTTP_GEOIP_LATITUDE $geoip_latitude;
passenger_set_cgi_param HTTP_GEOIP_LONGITUDE $geoip_longitude;
Тогда в моем приложении Rails я сделать что-то вроде этого:
geodata = {
country_code: request.env["HTTP_GEOIP_CITY_COUNTRY_CODE"],
country_name: request.env["HTTP_GEOIP_CITY_COUNTRY_NAME"],
region: request.env["HTTP_GEOIP_REGION"],
city_name: request.env["HTTP_GEOIP_CITY"],
zipcode: request.env["HTTP_GEOIP_POSTAL_CODE"],
lat: request.env["HTTP_GEOIP_LATITUDE"],
lng: request.env["HTTP_GEOIP_LONGITUDE"]
}
Но он всегда возвращает ноль для всех значений. Правильно ли устанавливаю переменные? Неправильно ли настроена геода база данных? Nginx не выдает никаких ошибок и установлен флаг компиляции --with-http_geoip_module
.