ПРОЕКТЫ 


  АРХИВ 


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: Fwd: Обработка заголовков протокола Mercurial.



Hello!

On Wed, Jan 25, 2012 at 08:12:17AM +0400, Eugene Mamin wrote:

>      Здравствуйте, nginx стоит прокси-сервером для авторизации и
> перенаправления запросов к локально запущенному сервису mercurial (hg).
> Столкнулся с проблемой, описанной здесь:
> http://mercurial.selenic.com/bts/issue3194. Если коротко, то nginx "портит"
> HTTP заголовки, после чего сервер mercurial обработать запрос корректно не
> может.

Упомянутый тикет никакой конкретики не содержит, так что говорить 
о том, что на самом деле происходит - неуместно.

> Ставил значения директив: ignore_invalid_headers
> off; underscores_in_headers on; merge_slashes off; но результата не
> получил. Особо отмечаю, что проблема появилась не так давно, т.е. в
> работоспособности самой конфигурации сомневаться не приходится.
>     На сервере nginx-1.0.11, ArchLinux.
>     Хотел было залогировать все заголовки, как их видит nginx, но не нашел
> такой возможности. Могу лишь утверждать, что без nginx сам mercurial
> работает.
>     Заголовки могут быть примерно такими (вывод лога hg serve):
> 
> 178.76.212.86 - - [24/Jan/2012 22:20:38] "GET /concorde?cmd=batch HTTP/1.1"
> 200 -
> x-hgarg-1:cmds=heads+%3Bknown+nodes%3D0b75949a12b936df4c501b0b890211f29662e048
> 178.76.212.86 - - [24/Jan/2012 22:20:39] "GET /concorde?cmd=listkeys
> HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks.
> 
>     Есть ли возможность обеспечить передачу заголовков на апстрим без
> каких-либо модификаций и изменений со стороны nginx ?

Должно работать (и у меня в тестах работает, проверял 1.9.1 и 
2.0.2) без каких-либо ухищрений в конфигах, достаточно просто 
написать

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

Если не работает - нужен debug log, конфиг на котором 
воспроизводится, вывод nginx -V.  А равно точная версия 
Mercurial'а и его вывод при возникновении проблемы.

Как делать debug log описано тут:

http://wiki.nginx.org/Debugging
http://nginx.org/en/docs/debugging_log.html

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.