nginx如何配置proxy_cache缓存

  介绍

本篇文章为大家展示了nginx如何配置proxy_cache缓存,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强>回源服务器的工作:

回源服务器在下面叙述中简称:源站如图所示,在文件下载的过程中,横跨在cdn与文件服务器之间,作为下载枢纽。

 nginx如何配置proxy_cache缓存

源站架构:源站是nginx + php的网络服务器架构,如图所示:

 nginx如何配置proxy_cache缓存“> <br/> </p> <p>但如果源站只是简单的收到请求,然后下载资源,再返回,势必会存在以下几点不够优化的问题:</p> <p> 1, cdn可能存在多次回源现象</p> <p> 2,源站对同一资源的多次下载,存在网络流量带宽浪费,以及不必要的耗时。</p> <p>所以为了优化这些问题,需要给源站做一层缓存。缓存策略采用nginx自带的proxy_cache模块。<br/> </p> <p> </p> <p> proxy_cache模块的工作原理如图所示:</p> <p> <img src= http {   ……   proxy_cache_path/数据/nginx tmp-test水平=1:2 keys_zone=tmp-test: 100活动=7 d max_size=1000克;   }

代码说明:

proxy_cache_path缓存文件路径

水平设置缓存文件目录层次;水平=1:2表示两级目录

keys_zone设置缓存名字和共享内存大小

不活跃在指定时间内没人访问则被删除

m ax_size最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。

当配置好之后,重启nginx,如果不报错,则配置的proxy_cache会生效

查看,proxy_cache_path/数据/nginx/目录,会发现生成了tmp以及文件夹。

在你对应的vhost nginx服务器配置文件中添加如下代码:

位置/tmp-test/{
  proxy_cache tmp-test;
  proxy_cache_valid 200 206 304 301 302 10 d;
  proxy_cache_key uri美元;
  主持人:美元proxy_set_header主机server_port;
  proxy_set_header X-Real-IP remote_addr美元;
  proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元;
  proxy_passhttp://127.0.0.1:8081/media_store.php/tmp-test/;
  }

配置项介绍:Proxy_cache tmp以及使用名为tmp以及的对应缓存配置

proxy_cache_valid 200 206 304 301 302 10 d;200年对httpcode为…的缓存10天

proxy_cache_key uri 美元;定义缓存唯一键通过唯一键来进行散列存取

proxy_set_header 自定义http头头,用于发送给后端真实服务器。

proxy_pass,指代理后转发的路径,注意是否需要最后的/

到这里,最基本的proxy_cache功能就配置成功了。当uri成功匹配到该位置,则proxy_cache就会生效。

1,第一次访问:

 nginx如何配置proxy_cache缓存”>,<br/> </p> <p>第一次访问,proxy_cache并没有找到对应的缓存文件(未命中缓存小姐),所以当第一次请求完成的同时,proxy_cache会保持缓存:<br/> </p> <p> 2,保存缓存,如图所示:</p> <p> <img src=nginx如何配置proxy_cache缓存