Warning: Redis::connect(): connect() failed: Connection refused in /var/www/admclub.com/wp-content/object-cache.php on line 418
Nginx+Memcached高速优化DedeCMS之软件安装 | _站长俱乐部站长俱乐部

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

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

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

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

原理是这样的:

1。文章每一次被请求显示的时候,由于内存中无此文章,所以通过nginx重定向后,指向php程序。

2。PHP程序将文章读取,保存到memcache中,最后显示给用户阅读。

3。在有效期内,文章被再次请求显示,nginx直接检查memcache是否有内容。有则直接显示,不通过php和硬盘IO。

4。文章在memcache中有效期已过,回到第1步。

如下图:

[图1]

安装相关软件:

1. 安装nginx+memc-nginx-module+ngx_http_upstream_keepalive模块

在这里,我没有使用nginx自带的memcache模块,是因为memc-nginx-module是国人开发的一个nginx模块,不但完全支 持nginx自带的memcache模块的功能,还内置了一些很实用的管理功能。比如,可以很方便地flush,delete,get,set实现管理 memcache的内容,等。很好。

而另一个nginx模块是ngx_http_upstream_keepalive。这个模块可以使得memcache模块能保持长时间连接,减少nginx与memcache建立连接的开销。

本方案还使用到google_perftools_module模块,优化nginx内存管理,也可以提高nginx在高并发下的性能。安装方法请看使用google-perftools优化nginx在高并发时的性能完整教程[第二版] 。如果你不需要google_perftools_module模块,只要在./configure的时候不添加–with-google_perftools_module就可以了。

最后一个模块可以不安装。

memc-nginx-module模块地址:http://wiki.nginx.org/HttpMemcModule

ngx_http_upstream_keepalive模块地址:http://wiki.nginx.org/HttpUpstreamKeepaliveModule

准备安装:

wget https://github.com/agentzh/memc-nginx-module/tarball/v0.12 –no-check-certificate -O agentzh-memc-nginx-module-v0.12-0-g4f1952c.tar.gz

wget http://mdounin.ru/hg/ngx_http_upstream_keepalive/archive/tip.tar.gz -O ngx_http_upstream_keepalive-f3b50effc1d4.tar.gz

wget http://labs.frickle.com/files/ngx_cache_purge-1.3.tar.gz

tar xzvf agentzh-memc-nginx-module-v0.12-0-g4f1952c.tar.gz

tar xzvf ngx_http_upstream_keepalive-f3b50effc1d4.tar.gz

tar xzvf ngx_cache_purge-1.3.tar.gz

google_perftools_module模块,安装方法请看。

=========================================

Nginx安装:

wget http://nginx.org/download/nginx-1.1.1.tar.gz

tar xzvf nginx-1.1.1.tar.gz

cd nginx-1.1.1

useradd www

./configure –user=www –group=www –prefix=/usr/local/nginx \
–with-http_stub_status_module \
–with-http_ssl_module –with-openssl= \
–with-http_addition_module \
–with-zlib= \
–add-module=../agentzh-memc-nginx-module-4f1952c \
–add-module=../ngx_cache_purge-1.3 \
–add-module=../ngx_http_upstream_keepalive-f3b50effc1d4 \
–with-google_perftools_module

make

make install

2. 安装memcached

useradd memcached

wget http://memcached.googlecode.com/files/memcached-1.4.7.tar.gz

tar xzvf memcached-1.4.7.tar.gz

cd memcached-1.4.7

./configure

make

make install

 

=======================

启动memcached

memcached -d -m 64 -l 127.0.0.1 -p 11211 -u memcached

好了,先到这里,明天我接着把nginx里的配置参数和DedeCMS需要修改的地方贴出。

相关阅读:

http://admclub.com/view/nginxmemcached高速优化dedecms之服务器配置

发表评论?

3 条评论。

  1. 我用FreeBSD系统编译 nginx 1.0.6 的时候,提示缺少
    agentzh-memc-nginx-module-v0.12-0-g4f1952c.tar.gz
    这个包。 在您这里找到了下载的地方,谢谢。

    freebsd 要把这个包下载到 /usr/ports/distfiles 下面。

    然后用 ports 就可以编译了。

发表评论


注意 - 你可以用以下 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>