ПРОЕКТЫ 


  АРХИВ 


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.



On Wed, Jan 25, 2012 at 01:47:04PM +0400, Eugene Mamin wrote:
> Да, попробовал телнетом постучать прямо на hg serve, получил ту же 500-ую
> от меркуриала :)
> 
> В конфигурации задал следующие директивы, чтобы максимально приблизить
> заголовки:
> proxy_http_version 1.1;
> proxy_set_header Host $host;
> 
> Теперь имеем такие данные (логи tcpdump):
> http://ftp.dzhon.in/nginx_ -- запрос hg pull через nginx
> http://ftp.dzhon.in/hg__ -- запрос hg pull напрямую к hg serve.

Разница такая:

: --- hg_       2012-01-25 14:06:36.000000000 +0400
: +++ nginx_    2012-01-25 14:07:02.000000000 +0400
: @@ -1,41 +1,27 @@
:  GET /concorde?cmd=capabilities HTTP/1.1
:  Accept-Encoding: identity
: -host: hg.dzhon.in:7777
: +host: hg.dzhon.in
:  accept: application/mercurial-0.1
:  user-agent: mercurial/proto-1.0

:  HTTP/1.1 200 Script output follows
: -Server: BaseHTTP/0.3 Python/2.7.2
: -Date: Wed, 25 Jan 2012 09:35:20 GMT
: +Server: nginx/1.1.12
: +Date: Wed, 25 Jan 2012 09:34:44 GMT
:  Content-Type: application/mercurial-0.1
:  Content-Length: 130
: +Connection: keep-alive
:  lookup changegroupsubset branchmap pushkey known getbundle unbundlehash 
batch stream unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024

:  GET /concorde?cmd=batch HTTP/1.1
:  Accept-Encoding: identity
: -x-hgarg-1: 
cmds=heads+%3Bknown+nodes%3D0b75949a12b936df4c501b0b890211f29662e048
: -host: hg.dzhon.in:7777
: +host: hg.dzhon.in
:  vary: X-HgArg-1
:  accept: application/mercurial-0.1
:  user-agent: mercurial/proto-1.0

: -HTTP/1.1 200 Script output follows
: -Server: BaseHTTP/0.3 Python/2.7.2
: -Date: Wed, 25 Jan 2012 09:35:21 GMT
: -Content-Type: application/mercurial-0.1
: -Content-Length: 43
: -0b75949a12b936df4c501b0b890211f29662e048
: -
: -GET /concorde?cmd=listkeys HTTP/1.1
: -Accept-Encoding: identity
: -x-hgarg-1: namespace=bookmarks
: -host: hg.dzhon.in:7777
: -vary: X-HgArg-1
: -accept: application/mercurial-0.1
: -user-agent: mercurial/proto-1.0
: -
: -HTTP/1.1 200 Script output follows
: -Server: BaseHTTP/0.3 Python/2.7.2
: -Date: Wed, 25 Jan 2012 09:35:21 GMT
: -Content-Type: application/mercurial-0.1
: -Connection: close
: +HTTP/1.1 500 Internal Server Error
: +Server: nginx/1.1.12
: +Date: Wed, 25 Jan 2012 09:34:44 GMT
: +Transfer-Encoding: chunked
: +Connection: keep-alive
: +Internal Server Error

Т.е. первый запрос отличается слегка по значению Host,
а ответ -- по значению Server и Connection: keepalive.
А вот уже второй запрос приходит от клиента без
требуемого по протоколу заголовка x-hgarg-1.
Давайте попробуем вернуть оригинальное значение заголовка
Server, вдруг и вправду Windows-клиент на него смотрит
зачем-то:

        proxy_pass_header Server;

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


 




Copyright © Lexa Software, 1996-2009.