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

2023年 8月 2日 24.9k 0

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;
}
...
}
...
}

登录后复制

  • proxy_cache_path:设置缓存目录的路径。levels=1:2表示在缓存目录下使用两级子目录来存储缓存文件,这可以提高文件的查找速度。keys_zone为缓存区域的名称,10m表示分配10MB的内存用于缓存索引。max_size表示缓存文件的最大大小,inactive表示在指定时间没有被访问时,缓存文件会被删除。
  • location:用于匹配需要被缓存的静态资源文件。在此例中,使用正则表达式匹配CSS、JavaScript、图片等文件,并设置缓存的过期时间为30天。
  • 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";
    }
    ...
    }
    ...
    }

    登录后复制

  • location:定义一个/purge-cache的URL,用于触发缓存清理操作。internal表示这个URL只对内部访问有效。
  • 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

    以上就是Nginx缓存清理配置,优化网站静态资源更新的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论