教学之友,学习之友。

站长教学网

目前nginx下4种做缓存的方法

时间:2012-12-21 16:38来源:未知 作者:ken 点击:

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.eduyo.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://eduyo.com/mem/abc指明到memcached的abc这个key去取数据。

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

3、基于第三方插件ncache

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

http://code.google.com/p/ncache/ 站长教学网 eduyo.com
但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状态。

 

(责任编辑:ken)
TAG标签: nginx 缓存 cache
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容