Warning: Redis::connect(): connect() failed: Connection refused in /var/www/admclub.com/wp-content/object-cache.php on line 418
Nginx+php-memcache 3.03 缓存出现乱码解决方法 | _站长俱乐部站长俱乐部

Nginx+php-memcache 3.03 缓存出现乱码解决方法

因为在国内买了个VPS,需要重新安装环境。我的WEB配置是Nginx+php+Memcache,每当一个页面被访问时,都会把输出写入到memcache中,第二次访问时,由nginx能过nginx-memc-module直接从memcached读取并输出。达到加速目的。

但是在这里安装中,发现当第二次后,输出的却是乱码,经验告诉我,这个内容是被压缩过的,很长的一段时间,我都认为是nginx的问题,很可能是头信息没有设置对,查了又查,发现NGINX的头信息应该是对的。

于是试下从memcached服务器中找答案,GOOGLE得知,自从memcached 1.4.1后,FLAG信息有所改变。于是把memcached从1.4.7降级到1.4.1。但是问题及不能解决。

接着,想到去查看memcached缓存的内容。一查才发现,原因在memcached中,HTML内容已经被压缩过了且flag的值是2!然后修改程序在写入memcached之前,把HTML保存到一个临时文件中,发现内容并没有被压缩,很显然是php-memcache模块自动压缩的了。于是再降级php-memcache模块到2.2.5。重新编译,重启php-fpm后,问题解决。

最后,不死心,还是到memcache官方查change log http://pecl.php.net/package-changelog.php?package=memcache

发现

3.0.3 - Enabled compression by default for values larger than 20kb

果然,自3.0.3后,凡大于20kb的内容,会自动被压缩。然而nginx-memc模块却不能自动识别压缩的。

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>