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、付费专栏及课程。

余额充值