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