Re: Fwd: Обработка заголовков протокола Mercurial.

Eugene Mamin thedzhon на gmail.com
Ср Янв 25 11:51:01 UTC 2012


Вернул, получается вот так (ошибка осталась):
http://ftp.dzhon.in/nginx_pass_Server
P.S. Пользуясь случаем, очень благодарен вам за активную помощь!

2012/1/25 Ruslan Ermilov <ru на nginx.com>

> 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 на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20120125/9c46d021/attachment.html>


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