Re: Проблема с curl, proxy cache и Content-Lenght

Maxim Dounin mdounin at mdounin.ru
Wed Mar 5 13:54:10 UTC 2014


Hello!

On Wed, Mar 05, 2014 at 07:44:11AM -0500, ddr400 wrote:

> Всем привет!
> 
> Столкнулся с неожиданной проблемой. Если включен proxy_cache и используется
> ssi, curl часто выдает ошибку
> 
> * Received problem 3 in the chunky parser
> * Closing connection #0
> curl: (56) Received problem 3 in the chunky parser
> 
> и в error.log:
> 
> 2014/03/05 16:33:55 [info] 31373#0: *525 client prematurely closed
> connection while sending to client, client: 1.1.1.1, server: host.ru,
> request: "GET / HTTP/1.1", subrequest: "/includes/lists/tabloid", upstream:
> "http://127.0.0.1:9030/includes/lists/tabloid", host: "host.ru"
> 
> Все начинает правильно работать, при следующих условиях:
> 
> 1. ssi off и тогда nginx начинает передавать curl заголовок Content-Lenght
> 2. proxy_cache не используется и ssi on
> 
> Конфиг:
> 
>         ssi on;
> 
>         gzip_static on;
> 
>         keepalive_requests 20;
>         location ~ ^/includes {
> 
>                 include /etc/nginx/conf/access.conf;
> 
>                 proxy_cache some-cache;
>                 proxy_cache_valid 200 302 301 304 10s;
>                 proxy_cache_key "$request_method|$host|$uri";
>                 proxy_hide_header "Set-Cookie";
>                 proxy_ignore_headers "Cache-Control" "Expires";
>                 proxy_cache_use_stale error timeout invalid_header updating
> http_500 http_502 http_503;
>                 proxy_cache_lock on;

Возможно, речь идёт о проблеме proxy_cache_lock в подзапросах 
(i.e., ssi include'ах).  Попробуйте выключить proxy_cache_lock.

Ну и да, было бы неплохо увидеть debug log и собственно ответ, 
который возвращает nginx (не только заголовки).

-- 
Maxim Dounin
http://nginx.org/



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