假设有两台物理机,他们分属于不同的域名,以webgame的游戏运营商和开发商为例,运营商需要获取游戏中的排行数据,开发商为了过多对游戏服务器的请求,会在发起请求的机器上设置缓存(或是让运营商定时过来抓取一次数据)
nginx设置web缓存,需要用到的相关指令:
1、proxy_cache
2、proxy_cache_path
3、proxy_cache_valid
需要注意的事项:
1、windows下面设置缓存不会在指定的path生成的缓存文件
2、指定的path上一级目录需要存在,否则会报错 (假设缓存文件存放于/usr/local/cc/abc,那么cc目录需要事先建立)
3、proxy_cache_path 只能存放于http中,不能放置于server或location
具体的实例:
proxy_cache_path /usr/local/nginx_rank_cache levels=1:2 keys_zone=rankCache:1m inactive=1h max_size=30m;
第一次请求过来时,将对应将生成如下目录:
上面指令中 “/usr/local/nginx_rank_cache”为缓存存放的目录路径
levels指定该缓存空间有两层hash目录,第一层目录为1个字母,第二层为2个字母,对应上图中的“3”和“b6”
keys_zone=rankCache 参数用来为这个缓存区起名(proxy_cache 指令需要用到 其后对应缓存区名称)
:1m 指内存缓存空间大小为1MB
inactive 的1h指如果缓存数据在1小时(天:d、秒:s、分:m)内没有被访问,将自动被删除;
max_size=30m 指硬盘缓存大小为30MB
打开上图中的缓存文件,可以看到如下信息(编码格式有点问题,显示乱码了):