Nginx proxy_set_header не работает с Apache GEOIP

Я '

Что мне нужно сделать, чтобы apache мог получить все переменные?

1
задан 17 January 2017 в 19:16
1 ответ

Похоже, что это руководство и несколько других веб-сайтов, которые копируют коды из этого руководства по geoip nginx, неверны / устарели.

при установке заголовка прокси кажется, что вы не можете использовать подчеркивание ( _) и Muse use (-). Итак, после перехода с

proxy_set_header GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;

на этот

proxy_set_header GEOIP-CITY-COUNTRY-CODE $geoip_city_country_code;

apache может получать переменные, и теперь он также отображается на моем phpinfo.

Мой полный блок местоположения для php теперь выглядит так.

location ~ \.php$ {

           proxy_pass http://1.2.3.4:8080$request_uri;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
           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;
    include /etc/nginx/proxy_params;
    }

С указанными выше настройками Я мог бы получить следующие серверные переменные с заполненными значениями. Обратите внимание, что некоторые серверы добавили префикс HTTP из соображений безопасности. И каким-то образом ... тире снова преобразуются в символы подчеркивания.

$_SERVER['HTTP_GEOIP_LONGITUDE'] 
$_SERVER['HTTP_GEOIP_LATITUDE'] 
$_SERVER['HTTP_GEOIP_CITY'] 
$_SERVER['HTTP_GEOIP_REGION'] 
$_SERVER['HTTP_GEOIP_CITY_COUNTRY_CODE'] 
$_SERVER['HTTP_GEOIP_COUNTRY_NAME'] 
$_SERVER['HTTP_GEOIP_COUNTRY_CODE3'] 
$_SERVER['HTTP_GEOIP_COUNTRY_CODE']
2
ответ дан 3 December 2019 в 20:29

Теги

Похожие вопросы