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

相關文章:

翻譯: