Nginx浏览器缓存

浏览器缓存

配置浏览器缓存可以加速静态资源的访问,浏览器对用户访问的资源进⾏存储,下次访问,不⽤再去向服务器寻求资料,直接本地显示,加速访问体验,节省⽹络资源,提⾼效率。Nginx通过 expires 指令配置缓存,可以控制 HTTP 响应中的 Expires Cache-Control的头部信息,⽤来控制页⾯缓存例如HTML ⻚⾯经常引⽤ JavaScript 以及图⽚等⽂件,这些⽂件很少被修改,可以设置浏览器对该类资源在本地缓存定期的时间。添加缓存之前响应信息

常用的指令

proxy_cache_path

该指定用于设置缓存文件的存放路径

语法

语法proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time][max_size=size];
默认值
位置http

参数 

levels指定该缓存空间对应的目录,最多可以设置3层,每层取值为1|2
keys_zone用来为这个缓存区设置名称和指定大小
inactive指定缓存的数据多次时间未被访问就将被删除
max_size设置最大缓存空间,如果缓存空间存满,默认会覆盖缓存时间最长的资源

 levels详解

levels=1:2   缓存空间有两层目录,第一次是1个字母,第二次是2个字母
举例说明:
itheima[key]通过MD5加密以后的值为 43c8233266edce38c2c9af0694e2107d
levels=1:2   最终的存储路径为/usr/local/proxy_cache/d/07
levels=2:1:2 最终的存储路径为/usr/local/proxy_cache/7d/0/21
levels=2:2:2 最终的存储路径为??/usr/local/proxy_cache/7d/10/e2

 用法

http{
	proxy_cache_path /usr/local/proxy_cache keys_zone=itcast:200m  levels=1:2:1 inactive=1d max_size=20g;
}

proxy_cache

 该指令用来开启或关闭代理缓存,如果是开启则自定使用哪个缓存区来进行缓存。

语法

语法proxy_cache zone_name|off;
默认值proxy_cache off;
位置http、server、location

参数

zone_name指定使用缓存区的名称

用法

http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    sever{
        ....
        location / {
            proxy_pass http://backend-server;
            proxy_cache my_cache;
        }
    }
}

proxy_cache_key

 该指令用来设置web缓存的key值,Nginx会根据key值MD5哈希存缓存。

语法

语法proxy_cache_key key;
默认值proxy_cache_key $scheme$proxy_host$request_uri;
位置http、server、location

参数详解

proxy_cache_key 的值为 $scheme$proxy_host$request_uri;。这意味着缓存键将由请求的协议 ($scheme)、代理主机 ($proxy_host) 和请求的 URI ($request_uri) 组成。例如,对于以下两个请求:

  • http://example.com/path/to/resource
  • https://example.com/another/path

 Nginx 将根据这两个请求的协议、主机和 URI 生成不同的缓存键,确保它们被分别缓存在缓存区域中。

proxy_cache_valid

该指令用来对不同返回状态码的URL设置不同的缓存时间。

语法

语法proxy_cache_valid [code ...] time;
默认值
位置http、server、location

用法

proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
为200和302的响应URL设置10分钟缓存,为404的响应URL设置1分钟缓存
proxy_cache_valid any 1m;
对所有响应状态码的URL都设置1分钟缓存

proxy_cache_min_uses

该指令用来设置资源被访问多少次后被缓存

语法

语法proxy_cache_min_uses number;
默认值proxy_cache_min_uses 1;
位置http、server、location

proxy_cache_methods

该指令用户设置缓存哪些HTTP方法

语法

语法proxy_cache_methods GET|HEAD|POST;
默认值proxy_cache_methods GET HEAD;
位置http、server、location

参数详解

proxy_cache_methods GET HEAD; 默认缓存HTTP的GET和HEAD方法,不缓存POST方法。  

缓存清除

rm -rf /usr/local/proxy_cache/......

静态资源缓存设置


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    # gzip on;


        server {
	         listen 80;
	         server_name localhost;
    	     #默认编码
    	     charset utf-8;
    	     # access_log logs/host.access.log  main;
    	     location / {
    		 #定义虚拟主机的资源目录,无论win或linux都要写成正斜杠
	    	 root C:/Users/zhang/Desktop/new;
	    	 #定义首页文件的名字
	    	 index index.html index.htm;
		}
     # . 表示匹配任意字符,* 表示匹配前面的字符 0 次或多次,\. 表示匹配字符 .,() 表示使用括号内的内容进行分组,| 表示或的关系,$ 表示匹配字符串结尾。

	 # 配置缓存
	 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
		 root C:/Users/zhang/Desktop/new;
		 expires 30d;
	 }
     # 配置缓存
	 location ~ .*\.(js|css)?$ {
		 root C:/Users/zhang/Desktop/new;
		 expires 1h;
	 }
 
   }

}

测试

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值