nginx缓存

web缓存服务器位于客户端和源服务器之间,当客户端访问一个url时,web缓存服务器就会向源服务器发送请求,并保存这次的响应信息,当下一次客户端再访问这个url时就会直接从缓存服务器中获取,不用再项源服务器发送请求

nginx有永久缓存和暂时缓存两种、

nginx提供的nginx_store会将响应内容缓存到本地,除非手动删除,不然永久有效

server{
    listen 80;
    server-name 192.168.78.3;
    location /{
        root cache;
        proxy_store on;
        proxy_store_access user:rw group:rw all:r;
        proxy_temp_path cache_tmp;
    if(!-e $request_filename){
        proxy_pass http://192.168.78.128
        }
    }
    }

root是配置缓存的目录,proxy_store是配置开启本地缓存,proxy_store_access是配置缓存的读写权限,proxy_temp_path是设置反向代理时接收的数据临时存储文件的目录,该目录会在nginx生效后自动创建.!-e是判断文件或目录或链接是否存在,不存在则执行里面的指令,$request_filename是当前请求的文件路径或url,如果存在则不用再向源服务器获取资源。

还有一种临时缓存是使用proxy_cache指令设置

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
  
    keepalive_timeout  65;

   proxy_temp_path  /usr/local/nginx/proxy_tmp_dir
   proxy_cache_path /usr/local/nginx/proxy_cache_dir levels=1:2 keys_zone=chche_one:50m
    inactive=1m max_size=500m;    

	
   server {
	listen  80;
	server_name test.ng.test;
    add_header X-Via $server_addr;
    add_header X-Cache $upstream_cache_status;
    location /{
        proxy_cache cache_one;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_vaild 200 1m;
        proxy_cache_vaild 304 1m;

    }
		}
}

首先proxy_temp_path是缓存服务器接收源服务器响应内容时使用的临时目录,proxy_cache_path是设置缓存目录,levels是表示缓存下的目录结构,它是根据hash后请求的url地址创建的,目录名称从哈希后的字符串开始截取。例如,hash后的url为

1jiffnbewoiw123weq,则第一层子目录名称为q,第二层是we。keys_zone是指定缓存区名称和大小,名称为cache_one,大小为50mb,inactive是配置多久后缓存失效,1m为1分钟,max_size是指定磁盘大小。

add_header是添加响应头,用于获知访问的服务器地址与缓存是否成功

proxy_cache是设置缓存区域的名称

proxy_cache_key是用于设置hash的key值组成规则,

proxy_cache_vaild是配置相应的状态码对应的缓存时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值