Re: 400 Bad Request в Mercurial

Maxim Dounin mdounin at mdounin.ru
Mon May 20 12:50:47 UTC 2013


Hello!

On Mon, May 20, 2013 at 12:31:10AM -0400, kasak wrote:

> Имеется репозиторий на меркуриале, работает через Apache на внутреннем
> сервере, nginx стоит на шлюзе и проксирует запросы на внутренний сервер. С
> определённого момента стало невозможным через nginx сделать pull, хотя clone
> работает. При попытке сделать pull получаем 400:bad request. 
> 
> В error.log ничего, вот конфиг:
> 
> server {
> listen 80;
> server_name hg.somesite.ru;
> large_client_header_buffers 4 128k;
> location / {
> proxy_pass http://al-dabaran;
> proxy_redirect off;
> proxy_set_header Host $host;
> proxy_set_header X-Host $http_host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Proxy-host $proxy_host;
> client_max_body_size 400m;
> client_body_buffer_size 128k;
> proxy_buffering off;
> proxy_connect_timeout 3600;
> proxy_send_timeout 3600;
> proxy_read_timeout 3600;
> proxy_buffer_size 8k;
> proxy_buffers 8 32k;
> proxy_busy_buffers_size 64k;
> proxy_temp_file_write_size 64k;
> }
> 
>         }
> 
> Если пытаться сделать pull не через nginx а напрямую всё работает. Пробовал
> так же прокинуть порт на шлюзе, тоже работает. Не работает только через
> nginx. nginx версии 1.2.8 родной из openbsd. 
> Может есть хотя бы какой-нибудь способ протрассировать почему не пашет? 
> Все эти опции в конфиге я уже добавлял по факту того что без них перестало
> работать, и с ними тоже не работает. Первое что увидел в гугле -
> large_client_header_buffers, менял в разных вариациях - ничего не помогло.
> Вот и понеслось.. 
> Заранее спасибо за ответы

Если 400 Bad Request возвращает nginx - в error log'е на уровне 
info будет указана причина.  Поставьте уровень логгирования 
error_log'у в info - станет понятнее в чём конкретно проблема.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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