nginx 缓存服务器

 缓存方法一:

 

 location /cache/ {

 

     root  /web/cache;

     if ( !-f $request_filename )
      {
            proxy_pass http://backend/;
      }

     proxy_store on;

     ........//中间是一些proxy的参数设置,可以根据需要添加

     proxy_set_header Accept-Encoding '';( 让后端不要返回压缩的内容)

     proxy_temp_path /home/tmp

 }

 

 

缺点:

1不支持带参数的动态链接2 nginx内部没有缓存过期和清理的任何机制,这些缓存的文件会永久性地保存在机器上,如果要缓存的东西非常多,那就会撑暴整个硬盘空间。为此可以使用一个shell脚本定期清理,同时可以撰写php等动态程序来做实时更新 3只能缓存200状态码,因此后端返回301/302/404等状态码都不会缓存,假如恰好有一个访问量很大的伪静态链接被删除,那就会不停穿透导致后端承载不小压力 4nginx不会自动选择内存或硬盘作为存储介质,一切由配置决定,当然在当前的操作系统里都会有操作系统级的文件缓存机制,所以存在硬盘上也不需要过分担心大并发读取造成的io性能问题(可以将缓存目录放到/dev/shm)

 

缓存方法二:

 

nginx 加memcached模块:

 

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

 

缓存方法三:

 

第三方插件ncache

 

http://code.google.com/p/ncache/

 

缓存方法四:

 

nginx新开发的proxy_cache功能

 

配置cache空间

 

proxy_cache_path /path/to/cache levels=1:2 keys_zone=NAME:10m inactive=5m max_size=2m;

 

location / {
    proxy_pass http://www.sudone.com/;

    proxy_cache NAME;#使用NAME这个keys_zone
    proxy_cache_valid 200 302 1h;#200和302状态码保存1小时
    proxy_cache_valid 301 1d;#301状态码保存一天
    proxy_cache_valid any 1m;#其它的保存一分钟
}

 

支持cache的0.7.44到0.7.51这几个版本的稳定性均有问题

 

控制访问:

 

以下为字符串匹配操作符

~  为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

 

if ($http_referer ~* domain.com) {
             rewrite  ^/  http://domain.com/images/fuck.gif
             #return   403;
    }

 

防盗链:

 

valid_referers none blocked www.123.net www.12.cn ;
if ($invalid_referer) {
rewrite ^/ http://domain.com/403.html;
#return 404;
}

 

还有一个防盗链的模块:NginxHttpAccessKeyModule有兴趣的朋友可以研究下


另附几个学习nginx 的好地方:

wiki.nginx.org//上面有nginx 的所有指令的大部分解释,对我已经够用了,还有个论坛讨论nginx 的各种问题,可以用来参考

www.nginx.cn //上面有几个nginx 和 apache squid 的架构研究,还有配置文件各种方法,挺全的

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值