Использование модуля GeoIP с Nginx и UWSGI

Я пытаюсь интегрировать этот модуль, но это немного выше меня:

http://wiki.nginx.org/HttpGeoipModule

В моей конфигурации nginx у меня есть это:

geoip_country /usr/share/GeoIP/GeoIP.dat;

Я добавил его в параметры сборки и включил в библиотеки, необходимые для его использования, и все в порядке. Я работаю с Python, работающим на Nginx и UWSGI, и я понятия не имею о следующем шаге, чтобы фактически получить результат geoip на моей странице.

Я безуспешно разместил это на доске сообщений nginx, поэтому, если кто-нибудь может мне помочь, я был бы очень признателен.


person Jimmy    schedule 22.11.2012    source источник


Ответы (1)


Теперь вы можете настроить nginx для передачи данных GeoIP в ваше приложение CGI через настраиваемые заголовки HTTP, например:

proxy_set_header X-GeoIP-Country $geoip_country_name;
proxy_set_header X-GeoIP-City    $geoip_city;

Приложение CGI получит эти настраиваемые заголовки вместе со стандартными заголовками HTTP, предоставленными на стороне клиента.

person kernel    schedule 22.11.2012
comment
Спасибо за ваш ответ. В моем случае мое приложение CGI является UWSGI? - person Jimmy; 22.11.2012
comment
@user1738522 user1738522 Да, в вашем случае это UWSGI, хотя этот метод будет работать для любого приложения CGI. Единственное замечание: в приведенном выше примере предполагается, что nginx и CGI-приложение связаны через tcp-сокеты (т. е. директива proxy_pass nginx используется для передачи данных в CGI-приложение). Если вы используете протокол FastCGI напрямую (т.е. используется директива fastcgi_pass nginx), то код должен выглядеть так: fastcgi_param GeoIP_Country $geoip_country_name; fastcgi_param GeoIP_City $geoip_city; - person kernel; 23.11.2012
comment
uWSGI обычно использует протокол uwsgi, тогда он должен быть uwsgi_param. - person VBart; 23.11.2012
comment
я всегда получаю неопределенность при вызове req.headers['X-GeoIP-Country'] , я использую экспресс-узел js stackoverflow.com/questions/51265803/ - person user1955934; 11.07.2018