NGINX помогите передать GEO в php

B
На сайте с 04.09.2014
Offline
11
6008

Nginx работает в связке с апачем. Саму схему сложно сложно себе представляю..

Вроде как стандартная настройка, добавлял

 
http {
include /etc/nginx/mime.types;

geoip_country /usr/share/GeoIP/GeoIP.dat; # ip2country database
geoip_city /usr/share/GeoIP/GeoLiteCity.dat; # ip2city database

....

location / {
proxy_pass http://127.0.0.1:81;
proxy_redirect http://127.0.0.1:81/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;

# Это не сработало
proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;
}

Чтобы разобраться, добавил после этого локэйшена такое

 
location /geo.php {
proxy_pass http://127.0.0.1:81;
#proxy_redirect http://127.0.0.1:81/ /;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP '1234567890';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;

#include /etc/nginx/proxy.conf;
#include /etc/nginx/fastcgi_params;
}

Файл geo.php в корне сайта, там пытаюсь отловить

$_SERVER['GEOIP_COUNTRY_CODE']

$_SERVER['X-Real-IP']

Обе переменные пустые. Подскажите пожалуйста, в чём может быть проблема?

lealhost
На сайте с 07.06.2014
Offline
136
#1
bumokep:

Файл geo.php в корне сайта, там пытаюсь отловить
$_SERVER['GEOIP_COUNTRY_CODE']
$_SERVER['X-Real-IP']

Обе переменные пустые. Подскажите пожалуйста, в чём может быть проблема?

Добрый день.

Попытайтесь отловить, добавляя префикс HTTP, например: $_SERVER['HTTP_GEOIP_COUNTRY_CODE'].

Смотрите через phpinfo(), есть ли они вообще.

B
На сайте с 04.09.2014
Offline
11
#2

lealhost, огромное Спасибо. Как раз с префиксом нашлись

Попытайтесь отловить, добавляя префикс HTTP, например: $_SERVER['HTTP_GEOIP_COUNTRY_CODE'].

А нигде в туториалах об этом ни слова. Ещё раз Спасибо.

R
На сайте с 03.07.2006
Offline
214
#3

В include /etc/nginx/fastcgi_params

или после включения

geoip_country /usr/share/GeoIP/GeoIP.dat; # ip2country database

geoip_city /usr/share/GeoIP/GeoLiteCity.dat; # ip2city database

Можно добавить серверные переменные:

# Set php-fpm geoip variables

#fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;

#fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;

#fastcgi_param GEOIP_CITY $geoip_city;

Мануал по этому модулю со всеми переменными и описаниями: http://nginx.org/ru/docs/http/ngx_http_geoip_module.html

Добавил:

А, извините, у вас прокси, тогда добавляйте proxy_set_header вместо fastcgi_param

А также переменные proxy_pass_header с указанием на заголовки который нужно передать

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий