介绍: 在代理服务器的磁盘中保存请求目标的内容,加快响应速度,减少应用服务器(后端服务器)上的资源开销,比如多客户端请求相同的资源,代理缓存命中后,对于应用服务器来说,只发生了一次资源调度。 而浏览器上的缓存配置,一般来说是用来减少本地IO的,请求目标的内容会存放在浏览器本地。
wget http://nginx.org/download/nginx-1.15.8.tar.gz wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz新建用户
useradd -r stu -s /sbin/nologin解压压缩包
tar xf -s nginx-1.15.8.tar.gz tar xf -s ngx_cache_purge-2.3.tar.gz安装依赖
yum -y install pcre-* openssl-*安装gxx
yum -y install gcc配置nginx 增加模块ngx_cache_purge-2.3并开启功能http_stub_status_module
./configure --prefix=/usr/local/nginx --user=stu --group=stu --add-module=../ngx_cache_purge-2.3 --with-http_stub_status_module编译并修改所属用户和组
make -j4 //编译 make install //安装 cd /usr/local chown stu.stu nginx -R //更改用户和组新建缓存目录
mkdir -p /cache/proxy_temp_dir chown stu.stu /cache -R修改配置文件
vim /usr/local/nginx/conf/nginx.conf设置缓存临时路径
proxy_temp_path /cache/proxy_temp_dir;缓存存储路径及开启
proxy_cache_path /cache/proxy_dir levels=1:2 keys_zone=cache0:10m inactive=1d max_size=30g;#levels=1:2 缓存目录分为两级 第一级文件夹命名用一个字母 第二级文件夹命名用两个字母,最多三级 #keys_zone=cache0:10m 内存缓存区域10M 名字为cache0,在共享内存中设置一块存储区域来存放缓存的key和metadata,这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储8000个key #inactive=1d 有限期为1天,如果缓存内容在一天中没人访问则被删除,需要注意的是,inactive和expired配置 项的含义是不同的,expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件 #max_size=30g 硬盘空间中的30g做磁盘缓存,如果不指定,会使用掉所有disk space,当达到配额后,会删除最少使用的cache文件 #use_temp_path 如果为off,则nginx会将缓存文件直接写入指定的cache文件中,而不是使用 temp_path存储,official建议为off,避免文件在不同文件系统中不必要的拷贝 #proxy_cache 启用proxy cache,并指定key_zone。如果proxy_cache off,表示关闭掉缓存
配置location
location /{ proxy_pass http://www.baidu.com; proxy_cache cache0; proxy_cache_valid 200 304 30h; proxy_cache_valid any 1m; #状态码200 304的过期时间为30h,其余为1m proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; }清除nginx缓存配置
location ~ /purge(/.*) { allow 127.0.0.1; allow 192.168.159.130/24; deny all; proxy_cache_purge cache_one $1$is_args$args; }访问时在host和uri之间加上/purge/即清除。