标签存档: Memcache

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模块却不能自动识别压缩的。

继续阅读 »

解决Nginx+Memcache下出现502错误的问题

使用Nginx+Memcache模块(HttpMemcachedModule或NginxHttpMemcModule)进行加速静态内容真是无敌的选择!

在Memcache模块正常运行的情况下,Nginx可以直接从Memcache内存中读取内容并直接显示,根本占用硬盘IO,飞快得很!

但是,有时候Memcache却会因故或无故地停止运行了!这时候Nginx将会抛出502错误信息,很烦人。解决这个问题基本也不难。原理就是使用Nginx的error_page 502转向技术。当出现这个错误的时候,把502错误转向一个@目的来处理。

继续阅读 »

Nginx+Memcached高速优化DedeCMS之程序修改

之前已经说到,本方案其它是利用nginx的rewrite伪静态功能结合Memcache来优化的.DedeCMS原PHP预览程序的翻页功能是使用动态的(view.php?aid=xxx&PageNo=xxx),主要是为了适应DedeCMS的这个问题.也为了尽可以少地修改DedeCMS原来的程序,我使用在以原程序为副本的基础上新建程序.如view2.php对应vew.php等.

文件内容不多细说.

下面提供打包下载,共6个程序:

继续阅读 »

Nginx+Memcached高速优化DedeCMS之服务器配置

接前日的Nginx+Memcached高速优化DedeCMS之软件安装软件安装.这些配置包括:文章内页,文章列表页,栏目主页,网站首页,图片,CSS等。这些资源都会被缓存到Memcache中,以达到最快的打开速度,最小的CPU使用。
下面贴出Nginx+Memcache高度优化的详细配置:

user www;
worker_processes 4;
……

继续阅读 »

Nginx+Memcached高速优化DedeCMS之软件安装

本编文章说下如何在Linux系统(CentOS 5.x)利用Nginx对Memcache的支持来高度优化dedeCMS.

虽然默认情况下DEDECMS已经支持Memcache作为高速缓存.

但是DedeCMS只支持SetCache()和getCache()方法.我觉得还不够好.一般情况下,dedeCMS生成纯静态的html页面,已经不错了,但是,当一个大站,有几万上十万文章,同时又打开自动关键词和随机文章的情况下,更新一次全站,简直是个噩梦。而且使用本Nginx+Memcache后,文章内容是保存在系统内存中的,每个文章在内存中又有一个有效时间,实现定时自动更新。而且Nginx是直接从内存中提然后显示文章内容,这样比从硬盘中读取要快,特别是在网站访问量很大,IO读繁忙时,效果更明显。

继续阅读 »