Caddy 2 中配置缓存

在 Caddy 2 中配置缓存可以使用 cache-handler 插件。以下是配置 Caddy 2 缓存的步骤:

  1. 安装 cache-handler 插件:首先,确保已安装 Caddy 2,并且可以使用插件。然后,下载并安装 cache-handler 插件。可以从 GitHub 的 caddyserver/cache-handler 仓库中获取插件的最新版本。
  2. 配置全局缓存选项:在 Caddyfile 中配置全局缓存选项。这些选项将适用于所有站点。以下是一些常用的全局选项:
  • order cache before rewrite:确保缓存处理在重写之前执行。
  • cache:启用缓存处理。
  • cache.allowed_http_verbs:允许被缓存的 HTTP 方法,默认为 GET 和 HEAD 。
  • cache.api.basepath:缓存管理 API 的基本路径。
  • cache.badger.path:配置 Badger 缓存存储的路径。
  • cache.cache_name:覆盖在 Cache-Status 响应头中使用的缓存名称。
  • cache.default_cache_control:如果上游未设置 Cache-Control 响应头,则设置默认值。 你可以根据需要配置其他选项。完整的全局选项列表可以在 cache-handler 插件的文档中找到 [1]
  1. 配置站点缓存选项:在 Caddyfile 中为每个站点配置缓存选项。以下是一个示例配置:
   example.com {
     cache
     reverse_proxy your-app:8080
   }

在这个示例中,cache 指令启用了缓存处理,并将请求代理到 your-app:8080

  1. 配置缓存键:你可以使用 cache_keys 指令为特定的 URI 配置缓存键生成规则。例如:
   cache_keys {
     .+\.css {
       disable_body
       disable_host
       disable_method
       disable_query
       headers X-Token Authorization
     }
   }

在这个示例中,所有以.css 结尾的 URI 将使用指定的规则生成缓存键。

  1. 配置 CDN 管理 (可选):如果你使用 CDN 代理请求,可以配置 CDN 管理选项。这些选项将与缓存处理一起使用。例如:
   cdn {
     provider fastly
     api_key XXXX
     dynamic
     email darkweak@protonmail.com
     hostname domain.com
     network your_network
     strategy soft
     service_id 123456_id
     zone_id anywhere_zone
   }

在这个示例中,使用 Fastly 作为 CDN 提供商,并配置了相关的 API 密钥、邮箱、主机名等信息。

  1. 保存并重新加载 Caddy 配置:完成配置后,保存 Caddyfile 并重新加载 Caddy 配置,以使更改生效。

这些是配置 Caddy 2 缓存的基本步骤。你可以根据需要调整和扩展这些配置选项。请参考 cache-handler 插件的文档以获取更多详细信息和选项 [1]


Learn more:

  1. GitHub - caddyserver/cache-handler: Distributed HTTP caching module for Caddy
  2. State of HTTP Caching in Caddy 2 - Help - Caddy Community
  3. 【 Caddy2 】最新 Caddy2 配置文件解析 - 詩 - 博客园

darkweak/souin 是一个 HTTP 缓存系统,符合 RFC 标准,并与 @tyktechnologies 、 @traefik 、 @caddyserver 、 @go-chi 、 @bnkamalesh 、 @beego 、 @devfeel 、 @labstack 、 @gofiber 、 @go-goyave 、 @go-kratos 、 @gin-gonic 、 @roadrunner-server 、 @zalando 、 @zeromicro 、 @nginx 和 @apache 兼容 [1]。它可以作为反向代理缓存系统,可以放置在当前反向代理 (如 Apache 、 Nginx) 的顶部,也可以作为 Træfik 、 Caddy 或 Tyk 等喜爱的反向代理的插件使用。由于它是用 Go 语言编写的,可以部署在任何服务器上,并且由于具有 Docker 集成,可以轻松安装在 Swarm 或 Kubernetes 实例上。它支持 Vary 、请求合并、陈旧的 Cache-Control 和其他与 RFC-7234 相关的规范,还支持新编写的 RFC(目前处于草案阶段)http-cache-groups 和 http-invalidation 。它还支持 ESI 标签,感谢 go-esi 包的支持 [1]

Souin 的配置文件存储在/anywhere/configuration.yml 中,可以根据需要提供自己的配置文件。配置文件中包含了各种配置选项,如缓存时间、反向代理 URL 、 API 配置、缓存键配置等 [1]

Souin 还提供了各种插件,如 Beego 过滤器、 Caddy 模块、 Chi 中间件、 Dotweb 中间件、 Echo 中间件、 Fiber 中间件、 Gin 中间件、 Goa 中间件、 Go-zero 中间件、 Goyave 中间件、 Hertz 中间件、 Kratos 过滤器、 Roadrunner 中间件、 Skipper 过滤器、 Træfik 插件、 Tyk 插件、 Webgo 中间件、 Prestashop 插件和 Wordpress 插件等 [1]

Souin 还支持 Prometheus API 、 Souin API 和 Security API,可以用于监控和管理缓存系统 [1]

总结:darkweak/souin 是一个符合 RFC 标准的 HTTP 缓存系统,可以作为反向代理缓存系统使用,也可以作为插件嵌入到其他反向代理中。它支持各种配置选项和插件,并提供了 API 用于监控和管理缓存系统。


Learn more:

  1. GitHub - darkweak/souin: An HTTP cache system, RFC compliant, compatible with @tyktechnologies, @traefik, @caddyserver, @go-chi, @bnkamalesh, @beego, @devfeel, @labstack, @gofiber, @go-goyave, @go-kratos, @gin-gonic, @roadrunner-server, @zalando, @zeromicro, @nginx and @apache
  2. darkweak · GitHub
  3. Releases · darkweak/souin · GitHub

发表评论