ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: set_header



On Thu, 9 Mar 2006, Монашёв Михаил wrote:

Возможно,  запрос  уходит  не  на  тот  сервер  ? proxy_set_header с
предыдщего уровня в этом случае не наследуются.

Я могу ошибаться, но конструкция
server {
               listen  xx.xx.xx.xx:80;

               server_name xxxxxxxx.ru;

               location /i/ {
                       root            /xxxxxxxxxx;
                       expires         30d;
                       charset windows-1251;
               }
               location ~* \.xml\.gz$ {
                       root            /xxxxxxxxxx;
               }
               location / {
                       proxy_set_header       Args  "";
                       proxy_pass      http://127.0.1.5:80/;
               }
       }

весьма  вероятно  изменяет  ещё  и  заголовок  Host.  Как  закомментарю
proxy_set_header, так всё работает.

Сейчас  ещё  посмотрел  внимательнее заголовки: в поле Host записалось
"127.0.1.5:80", хотя на уровне http у меня записано:

proxy_set_header Host $host;

Вот такая петрушка.

http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_set_header

[ ... ] Директивы наследуются с предыдущего уровня при условии, что на
данном уровне не описаны свои директивы proxy_set_header. По умолчанию
переопределяются только две строки:

    proxy_set_header  Host        $proxy_host;
    proxy_set_header  Connection  close;


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.