Re: Не работает $http x в контексте http, а именно в geo

Maxim Dounin mdounin на mdounin.ru
Чт Авг 23 14:56:50 UTC 2018


Hello!

On Thu, Aug 23, 2018 at 05:26:19AM -0400, clgs wrote:

> Привет.
> Не смог найти информацию в каком контексте работают глобальные переменные.
> Подскажите почему  $http_x_my_header не работает в данном случае?
> 
> http{
>         ....
>        geo $MY_HEADER {
>                 default "default";
>                 192.168.0.11/32 "user1";
>                 192.168.0.12/32 "user2";
>                 192.168.0.13/32 "user3";
>                 192.168.0.99/32 $http_x_my_header;
>         }
>         .....
>         server {
>                 .....
>         }
> }
> 
> В случае если REMOTE_ADDR 192.168.0.99, то $MY_HEADER является пустой
> строкой, при этом сам заголовок HTTP-X-MY-HEADER присутствует.

Если где-либо можно использовать переменные - об этом явно 
написано в документации.  В содержимом блока geo переменные 
не поддерживаются, соответственно в $MY_HEADER при запросе от 
192.168.0.99 должна получиться сторока "$http_x_my_header".

Если нужно получить значение переменной - воспользуйтесь 
дополнительно директивой map.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru