Re: Цепочка nginx proxy
Maxim Dounin
mdounin at mdounin.ru
Mon Mar 23 22:27:25 UTC 2015
Hello!
On Mon, Mar 23, 2015 at 05:50:59PM -0400, MereMortals wrote:
> Добрый день!
>
> В интернете решения так и не нашел.
>
> Есть такая схема
>
> клиент <->nginx_1 <->nginx_2<->apache
>
> На nginx_1 настрен GeoIP и в настройках прописано:
>
> proxy_set_header Host $host;
> proxy_set_header X-Forwarded-For $remote_addr;
> proxy_set_header X-Real-IP $my_real_ip;
> 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_CITY_COUNTRY_NAME2 $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;
>
> Но почему то до apache не доходят заголовки GEOIP_*, но доходят
> X-Forwarded-For и X-Real-IP. На вход у nginx_2 заголовки приходят, проверено
> через tcpdump, но почему то он их не проксирует. В чем может быть причина?
Не надо использовать символ подчёркивания в HTTP-заголовках, от
этого возникает множество ненужных проблем.
Если всё же очень надо (e.g., подобный заголовок присылает внешний
сервис), то есть директива underscores_in_headers, которая
разрешает nginx'у такие заголовки проксировать дальше:
http://nginx.org/ru/docs/http/ngx_http_core_module.html#underscores_in_headers
В данном случае - правильнее будет переименовать заголовки.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru