十七、Nginx--缓存实现

介绍:
在代理服务器的磁盘中保存请求目标的内容,加快响应速度,减少应用服务器(后端服务器)上的资源开销,比如多客户端请求相同的资源,代理缓存命中后,对于应用服务器来说,只发生了一次资源调度。
而浏览器上的缓存配置,一般来说是用来减少本地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/即清除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值