Nginx缓存清理配置,优化网站静态资源更新

Nginx缓存清理配置,优化网站静态资源更新

引言:
在网站开发过程中,经常会有静态资源的更新,如CSS、JavaScript和图片等。然而,由于浏览器的缓存机制,访问者可能无法立即获取到最新版本的静态资源。为了解决这个问题,我们可以使用Nginx进行缓存清理配置,以优化网站静态资源的更新。

一、Nginx缓存配置
首先,我们需要在Nginx的配置文件nginx.conf中添加以下指令来配置缓存相关的设置:

http {
...
proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m;
...
server {
...
location ~* .(css|js|png|jpg|jpeg|gif|ico)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
proxy_cache cache_zone;
proxy_cache_key $scheme$proxy_host$uri$is_args$args;
proxy_cache_valid 200 301 302 404 1d;
}
...
}
...
}
  1. proxy_cache_path:设置缓存目录的路径。levels=1:2表示在缓存目录下使用两级子目录来存储缓存文件,这可以提高文件的查找速度。keys_zone为缓存区域的名称,10m表示分配10MB的内存用于缓存索引。max_size表示缓存文件的最大大小,inactive表示在指定时间没有被访问时,缓存文件会被删除。
  2. location:用于匹配需要被缓存的静态资源文件。在此例中,使用正则表达式匹配CSS、JavaScript、图片等文件,并设置缓存的过期时间为30天。
  3. add_header:添加HTTP响应头信息,设置Pragma为public和Cache-Control为public,以确保缓存可以被公共缓存服务器和浏览器缓存。

二、Nginx缓存清理配置
当我们更新了网站的静态资源文件后,需要将缓存中的旧版本文件清除,以使访问者可以获取到最新的静态资源。为了实现这一点,我们可以在Nginx的配置文件中添加以下代码:

http {
...
proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m;
...
server {
...
location /purge-cache {
internal;
proxy_cache_purge cache_zone "$scheme$proxy_host$uri$is_args$args";
}
...
}
...
}
  1. location:定义一个/purge-cache的URL,用于触发缓存清理操作。internal表示这个URL只对内部访问有效。
  2. proxy_cache_purge:清除指定的URL对应的缓存文件。

三、代码示例
假设我们网站中的CSS文件位于http://example.com/static/css/style.css,我们可以使用以下代码来清理缓存中的该文件:

curl -X PURGE http://example.com/purge-cache/static/css/style.css

这个请求将会使nginx清除缓存中该URL对应的缓存文件,下次访问该URL时将会重新生成缓存。

结论:
通过配置Nginx的缓存清理,我们可以优化网站静态资源的更新。当我们更新了静态资源时,只需要发送一个清理缓存的请求,就可以使访问者获取到最新的资源文件,提高网站的性能和用户体验。

参考资料:

  • Nginx官方文档:https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_purge

原文来自:www.php.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容