登录  /  注册
首页 > 运维 > Nginx > 正文
Nginx缓存清理配置,优化网站静态资源更新
PHPz
发布: 2023-07-05 11:57:06
原创
941人浏览过

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

以上就是Nginx缓存清理配置,优化网站静态资源更新的详细内容,更多请关注php中文网其它相关文章!

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学