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