Nginx本地缓存转发七牛云等OSS图片教程,可以省钱
本教程介绍了如何在 Nginx 上配置缓存模块和反向代理,以实现七牛云/OSS 储存图片的快速转发和缓存。通过这样的配置,可以通过自己网站流量走七牛云/OSS 储存图片资源,能省钱,服务器带宽快的还能提升用户的访问体验。 在我的服务器上,随着访问量增加,七牛云的钱也是大把大把的扣,刚好网站流量省得比较多,转发七牛云储存的图片不就可以了,我只获取一次后面的全部缓存到服务器上,后面访问的在服务器上获取就可以了。这样虽然可能会影响网站访问,但是能省钱。说干就干。 配置 nginx 缓存 在 Nginx 配置文件中添加以下配置,启用缓存: proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:1024m inactive=2d; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 60m; 以上代码中, /var/cache/nginx 是缓存文件存放的路径, my_cache 是缓存的名称, 1024m 表示缓存最多 1024m inactive=2d 表示如果在 2 天时间内没有请求,缓存将被删除, proxy_cache_valid 200 60m其中, code 是一个或多个 HTTP 状态码,表示只有返回指定状态码的响应才会被缓存; time 则是缓存的有效期,可以是一个时间值,也可以是一个字符串。在 proxy_cache_valid` 指令中,如果没有指定 HTTP 状态码,则缓存适用于所有状态码的响应。如果指定了状态码,则只有返回指定状态码的响应才会被缓存。 例如, proxy_cache_valid 200 60m 的意思是,缓存返回状态码为 200 的响应,有效期为 60 分钟。这意味着,如果 nginx 缓存中已经有了一个返回状态码为 200 的响应,并且这个响应的缓存时间还没有过期,那么下一次访问相同的 URL 时,nginx 会直接从缓存中返回这个响应,而不是向后端服务器请求数据。 需要注意的是, proxy_cache_valid 指令只对成功的响应(即状态码为 200~299)生效,对其他状态码的响应(如 404、500 等)不会生效。如果需要缓存其他状态码的响应,可以使用 proxy_cache_valid any 指令。 配置 nginx 反向代理 在 Nginx 配置文件中添加以下配置,启用反向代理: ...