nginx + memcached + pecl-memcache compression

Валентин Бартенев vbart at nginx.com
Wed Aug 21 16:29:15 UTC 2013


On Wednesday 21 August 2013 20:03:00 Kron wrote:
> Доброго дня!
>  
> Быть может кто то сталкивался с похожей проблемой.
>  
> Есть php приложение, которой складывает некоторый контент в memcached с
> помощью pecl-memcache. В pecl-memcache с версии 3.0.3 появилась функция
> автоматической компрессии при определенных объемах данных. Само php
> приложение спокойно складывает контент в memcached и так же спокойно
> считывает его, а вот при попытке забрать этот конент с помощью nginx
> возникли проблемы. 
> Когда пытаюсь забрать данные через nginx, то получаю пустой ответ, а в
> логах nginx пишется следующее: 
> 2013/08/21 19:08:18 [alert] 31346#0: *1 inflate() failed: 2, -3 while
> sending to client, client: 10.9.105.228, server: , request: "GET
> 8cf848795069f9b6df65f2e533ea442f.css HTTP/1.1", upstream:
> "memcached://127.0.0.1:11299", host: "memcached:8099" 
> конфиг nginx:
>  
> server {
>  listen  8099;
>  
>  access_log /var/log/nginx/a.memc.log;
>  error_log /var/log/nginx/e.memc.log;
>  
>  location / {
>  set $memcached_key $request_uri;
>  memcached_pass 127.0.0.1:11299;
>  memcached_gzip_flag 2;
>  gunzip on;
>  }
> }
>  

pecl-memcache сжимает данные в формате zlib (RFC1950),
а nginx ожидает gzip (RFC1952).

--
Валентин Бартенев
http://nginx.org/en/donation.html


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