因为在国内买了个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模块却不能自动识别压缩的。
最新评论