Re: Как правильно проксировать переменные $https и $scheme

Валентин Бартенев vbart at nginx.com
Thu Aug 28 12:33:53 UTC 2014


On Thursday 28 August 2014 14:57:34 Константин Осипов wrote:
[..]
> Не работает видимо по тому что нельзя изменять переменные $https и $scheme.
> 
> Можно было бы сделать так:
>     map $http_x_forwarded_proto $fastcgi_https {
>         default '';
>         https on;
>     }
> 
>     map $http_x_forwarded_proto $fastcgi_scheme {
>         default http;
>         https https;
>     }
> 
> Но я не хотел бы использовать не стандартные переменные потому что ниже в
> секции location я использую переменные $https и $scheme в множестве правил
> с rewrite. Не стандартные переменные создадут неудобства в случае если
> конфигурация изменится.

Какие неудобства?  Один раз выполнить команду поиск'и'замена - вот и всё
неудобство.

> 
> Подскажите пожалуйста как правильно решить мою задачу?
> Спасибо.
> 

Правильно оставить стандартные переменные в покое.  Они определяют как
запрос пришел к nginx, а он у вас приходит всегда без шифрования.

У вас же другая задача, узнать, как запрос пришел на балансировщик, и для
этой задачи нужно использовать другие переменные.  И хорошо, что в вашей
конфигурации будет это явно отражено, а не завуалированно в виде явного
или неявного переопределения стандартных переменных.

--
Валентин Бартенев


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