nginx从memcached返回损坏的数据

在我的网站上,我用memcached做了数据caching。 它存储完全生成的HTML页面。 下一步是从nginx获取memcached中的这些数据,然后发回给用户,启动apache进程。 首先我试图通过PHP后端从caching中获取数据,它的工作。 但是当我尝试使用nginx做到这一点 – 我看到几乎没有损坏的数据。 像http://i.stack.imgur.com/JFGW0.png一样

我正在寻求这个问题的帮助。

ps这里的nginxconfiguration的一部分,如果它可以帮助

location / { #add_header Content-Type "text/html"; set $cachable 1; if ($request_method = POST){ set $cachable 0; break; } if ($http_cookie ~ "beauty_logged") { set $cachable 0; break; } if ($cachable = 1) { set $memcached_key 'nginx_$host$uri'; memcached_pass 127.0.0.1:11211; } default_type text/html; error_page 404 502 504 405 = @php; #proxy_pass http://front_cluster; } location @php { proxy_pass http://front_cluster; } 

Nginx不处理存储在Memcached中的内容,它只是获取它并按原样返回到浏览器。

真正的原因是您的应用程序使用的Memcached客户端库。 大多数库压缩较大的值(通常值的大小超过某个阈值),所以你必须configuration它不这样做,或设置memcached_gzip_flag启用gunzip模块 。