Caddy设置静态文件缓存

在使用 Google PageSpeed Insights 测试本站,诊断结果中说静态文件没有设置缓存,尤其是woff2字体下载耗时长,影响加载速度,由于本站使用Caddy2服务器,要添加静态文件缓存,配置文件语法和Nginx略有差异。

Caddy2 设置静态文件缓存时间示例:

mephisto.cc {
    encode gzip zstd
    root * /data/mephisto.cc/public
    file_server

    @static {
        file
        path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.woff2 *.webp
    }
    header @static Cache-Control max-age=604800

    reverse_proxy /xray 127.0.0.1:2001 {
        transport http {
            versions h2c
        }
    }

    handle_errors {
        rewrite * /{http.error.status_code}.html
        file_server
    }

    log {
        output file /var/log/caddy/mephisto.cc.log {
            roll_size 100mb
            roll_keep 10
            roll_keep_for 7d
        }
    }
}

@static 官方文档叫Named matchers,下面这一段的意思为,请求路径中匹配到下列类型的静态类型文件,通过控制返回头,设置缓存存储的最大周期,超过3600x24x7=604800秒,缓存被认为过期。与Expires相反,时间是相对于请求的时间。

    @static {
        file
        path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.woff2 *.webp
    }
    header @static Cache-Control max-age=604800

header的其它控制选项,可按照需要自行添加。

最后修改于: Monday, August 28, 2023
欢迎关注微信公众号,留言交流。

相关文章:

翻译: