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