URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8092
[ Назад ]

Исходное сообщение
"помогите понять почему GeoIp не работает (nginx)"

Отправлено evgeniy123 , 27-Июн-17 05:52 
Здравствуйте. Есть nginx с установлений из стандартных пакетов Ubuntu.  nginx version: nginx/1.10.3 .   Хочу подключить GeoIp что бы ловить в $_SERVER разные данные.  в main  добавил   load_module "modules/ngx_http_geoip_module.so";    
http{

geoip_country /var/www/pmn/data/Maxmind_GeoIp/GeoIP.dat; # the country IP database
geoip_city /var/www/pmn/data/Maxmind_GeoIp/GeoLiteCity.dat; # the city IP database    

...

include cfreal;  
}

cfreal:

### SET GEOIP Variables ###
proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;
proxy_set_header GEOIP_COUNTRY_CODE3 $geoip_country_code3;
proxy_set_header GEOIP_COUNTRY_NAME $geoip_country_name;

proxy_set_header GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
proxy_set_header GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
proxy_set_header GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
proxy_set_header GEOIP_REGION $geoip_region;
proxy_set_header GEOIP_CITY $geoip_city;
proxy_set_header GEOIP_POSTAL_CODE $geoip_postal_code;
proxy_set_header GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
proxy_set_header GEOIP_LATITUDE $geoip_latitude;
proxy_set_header GEOIP_LONGITUDE $geoip_longitude;  


root@site:/etc/nginx# ldconfig -v | grep GeoIP
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.23.so is the dynamic linker, ignoring

        libGeoIP.so.1 -> libGeoIP.so.1.6.9  

делаю . print_r($_SERVER)
  и не вижу никаких дополнительных значений. Может не так что делаю или нужно компилировать именно nginx  ?


Содержание

Сообщения в этом обсуждении
"помогите понять почему GeoIp не работает (nginx)"
Отправлено PavelR , 27-Июн-17 08:02 
Не знаю как другие, но вот лично я по кускам конфига не гадаю.

"помогите понять почему GeoIp не работает (nginx)"
Отправлено evgeniy123 , 27-Июн-17 09:52 
> Не знаю как другие, но вот лично я по кускам конфига не
> гадаю.

Вам нужен полный nginx.conf или еще что то ?


"помогите понять почему GeoIp не работает (nginx)"
Отправлено ACCA , 27-Июн-17 17:39 
> Вам нужен полный nginx.conf или еще что то ?

Все конфиги, которые работают.

Формальный вопрос - у тебя бэкенд на чём писан?

Твой PHP цепляется через FCGI? В FCGI параметры передаются через fastcgi_param.


GeoIP лучше считать в приложении, чтобы не гонять лишние строки в запросах. И сеть не грузишь и запрос парсишь быстрее.


"помогите понять почему GeoIp не работает (nginx)"
Отправлено PavelR , 27-Июн-17 19:41 
> GeoIP лучше считать в приложении, чтобы не гонять лишние строки в запросах.
> И сеть не грузишь и запрос парсишь быстрее.

Это зависит от приложения. Иметь БД загруженной в память программы может быть гораздо эффективнее, чем загружать и разбирать БД внутри скрипта (при каждом запросе).

Не думаю, что удастся сделать эффективнее, чем в nginx, хотя, конечно, эффективность зависит от правильной конфигурации.



"помогите понять почему GeoIp не работает (nginx)"
Отправлено ACCA , 27-Июн-17 20:55 
> Не думаю, что удастся сделать эффективнее, чем в nginx, хотя, конечно, эффективность
> зависит от правильной конфигурации.

Такие кунштюки тяжело делать на прокси - туда придётся затащить практически весь слой контроллера.

Типа для статики GeoIP на фиг не нужно, а вот для sign-up page - нужно. Ковыряешь только один запрос из 50, работаешь в 50 раз эффективнее. Туда же прикручиваешь memoization, вот тебе ещё 20-кратное ускорение.


"помогите понять почему GeoIp не работает (nginx)"
Отправлено evgeniy123 , 29-Июн-17 01:34 
>> Не думаю, что удастся сделать эффективнее, чем в nginx, хотя, конечно, эффективность
>> зависит от правильной конфигурации.
> Такие кунштюки тяжело делать на прокси - туда придётся затащить практически весь
> слой контроллера.
> Типа для статики GeoIP на фиг не нужно, а вот для sign-up
> page - нужно. Ковыряешь только один запрос из 50, работаешь в
> 50 раз эффективнее. Туда же прикручиваешь memoization, вот тебе ещё 20-кратное
> ускорение.

Извините не понял вашу логику. Почему в Sign Up так нужно ?


"помогите понять почему GeoIp не работает (nginx)"
Отправлено evgeniy123 , 29-Июн-17 03:01 
>> GeoIP лучше считать в приложении, чтобы не гонять лишние строки в запросах.
>> И сеть не грузишь и запрос парсишь быстрее.
> Это зависит от приложения. Иметь БД загруженной в память программы может быть
> гораздо эффективнее, чем загружать и разбирать БД внутри скрипта (при каждом
> запросе).
> Не думаю, что удастся сделать эффективнее, чем в nginx, хотя, конечно, эффективность
> зависит от правильной конфигурации.

Вообщем узнал что нижнее подчеркивание у меня не проходит  proxy_set_header GEOIP_CITY $geoip_city;    -> proxy_set_header GEOIP-CITY $geoip_city;  

Сейчас всё ок. хотя
http {  

underscores_in_headers  on

....}


"помогите понять почему GeoIp не работает (nginx)"
Отправлено evgeniy123 , 29-Июн-17 00:57 
>> Вам нужен полный nginx.conf или еще что то ?
> Все конфиги, которые работают.
> Формальный вопрос - у тебя бэкенд на чём писан?
> Твой PHP цепляется через FCGI? В FCGI параметры передаются через fastcgi_param.
> GeoIP лучше считать в приложении, чтобы не гонять лишние строки в запросах.
> И сеть не грузишь и запрос парсишь быстрее.

Websocket идет через FCGI.   а сам WEB + REST через nginx + apache. И там и там нужно это.

Не понял на счет приложения ...  Это как ?  include в коде при каждом вызове  GeoIp.dat   ?


"помогите понять почему GeoIp не работает (nginx)"
Отправлено Анна01 , 01-Июл-17 12:53 
> Не знаю как другие, но вот лично я по кускам конфига не
> гадаю.

ой у меня тоже есть какие- то такие проблемы ,, и я сама не знаю как это делается