proxy_set_header Host

Igor Sysoev igor на sysoev.ru
Ср Май 25 10:16:07 MSD 2011


On Tue, May 24, 2011 at 07:29:01PM +0300, Vasil Mikhalenya wrote:
> Всех приветствую,
> 
> возник вопрос, собственно конфиг ниже:
> 
> так не работает:
> 
>         listen   192.168.1.207:8080 ;
> 
>         location / {
>                 resolver                192.168.1.200;
>                 proxy_pass              http://$newhost;
> 
>                 proxy_set_header        Host            $host; # в
> данном случае $host устанавливается без порта, соответственно все
> редиректы на бэкенде не работают(работают не верно)
> # в rfc2616 вроде как сказано что в заголовке должен присутствовать порт
>         }
> 
> Внимание вопрос:
> из каких соображений nginx теряет/не добавляет порт в данный заголовок?
> 
> 
> workaround:
>         location / {
>                 resolver                192.168.1.200;
>                 proxy_pass              http://$newhost;
> 
>                 proxy_set_header        Host            "$host:8080";
>         }
> 
> Спасибо за внимание.

$host это переменная в которой нет порта.
Если нужен Host, пришедший от клиента, то можно использовать $http_host.


-- 
Igor Sysoev



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