关注于系统高可用、网站架构
分类: LINUX
2011-04-01 08:58:55
nginx用做反向代理,可以缓存代理的内容,通过以下配置完成:
proxy_cache_path /data/nginx_cache/ levels=1:2 keys_zone=cache0:10m;
proxy_temp_path /data/nginx_cache_tmp/;
proxy_buffer_size 8k;
proxy_buffering on;
proxy_buffers 8 8k;
proxy_cache cache0;
proxy_cache_key “$host$uri$is_args$args”;
proxy_cache_valid 1s;
nginx本身不提供缓存到内存的功能,不过可以通过使用技巧来做,就是利用/dev/shm – 虚拟内存。
首先确认/dev/shm是否被mount了,df命令可以看到一行:
tmpfs 8215004 16 8214988 1% /dev/shm,这台linux是16G内存,所以一半就是8G
使用上说,跟普通磁盘无区别,先创建目录mkdir /dev/shm/nginx_cache; mkdir /dev/shm/nginx_cache_tmp,
再mount到一个硬盘目录,由于不是块设置,需要用bind参数,mount –bind /dev/shm/nginx_cache /data/nginx_cache; mount –bind /dev/shm/nginx_cache_tmp /data/nginx_cache_tmp; 再mount看一下,会有下面几行:
tmpfs on /dev/shm type tmpfs (rw)
/dev/shm/nginx_cache on /data/nginx_cache type none (rw,bind)
/dev/shm/nginx_cache_tmp on /data/nginx_cache_tmp type none (rw,bind)
这样就相当于实现了将代理内容缓存到内存,提高响应速度。