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