首页 > 架构 > Nginx 的几种Cache方式介绍

Nginx 的几种Cache方式介绍

nginx 目前有这么几种cache方式:

1. proxy_store方式

location / {
    root /home/html/;
###启用proxy_store,指定nginx将代理返回的文件保存
    proxy_store on;
###让后端不要返回压缩(gzip或deflate)的内容,保存压缩后的内容会引发乱子。
    proxy_set_header Accept-Encoding ”;
###临时目录,这个目录要和/home/html在同一个硬盘分区内
    proxy_temp_path /home/tmp;
    if ( !-f $request_filename )
    {
        proxy_pass http://www.sudone.com/;
    }
}
原理就是找不到文件时通过proxy_pass指定的源服务区地址抓取文件保存到本地,proxy_store完全是在本地服务器保存了一个跟源服务器一模一样的目录结构,真的很强大,但缺点就是无法限制空间大小,如果本地服务器空间比源服务器小,很容易就把硬盘空间撑爆了,所以需要定时清理一些文件以保证服务器空间。

2.基于memcached的缓存

nginx对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。

location /mem/ {
    if ( $uri ~ "^/mem/([0-9A-Za-z_]*)$" )
    {
     set $memcached_key "$1";
     memcached_pass     192.168.1.2:11211;
    }
    expires 70;
}

这个配置会将http://sudone.com/mem/abc指明到memcached的abc这个key去取数据。

nginx目前没有写入memcached的任何机制,所以要往memcached里写入数据得用后台的动态语言完成,可以利用404定向到后端去写入数据。

3、基于第三方插件ncache

ncache是新浪开发的一个不错的项目,它利用nginx和memcached实现了一部分类似squid缓存的功能,关于这个插件的使用可以参考:

http://code.google.com/p/ncache/
但NCache is now in nginx core , you can use it as nginx proxy cache 
NCache is out of maintaince from 2009.1.1 (NCache已经停止更新很久了,但已经集中到nginx内核了,应该就是nginx0.7.44版本新加入的proxy_cache功能了,见下一个cache方式)

4、nginx新开发的proxy_cache功能

从nginx-0.7.44版开始,nginx支持了类似squid较为正规的cache功能,目前还处于开发阶段,支持相当有限,这个缓存是把链接用md5编码hash后保存,所以它可以支持任意链接,同时也支持404/301/302这样的非200状态。

 

http://note.sdo.com/u/1357765468/n/gXtJs~jyx99FnM01o0012E

分类: 架构 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

=2加6(必填)请输入两数相加的结果。