Caddy优化(一)

Naseele 技术工坊 23 次阅读 813 字 预计阅读时间: 4 分钟 发布于 2025-11-25 最后更新于 2025-12-03


AI 摘要

嘿,你的Caddy启动是不是慢得像蜗牛?原来是它在启动时拼命连接国外的OCSP服务器,结果连不上还傻等一分多钟!别担心,这篇文章教你一招:只需在配置里加一行 `ocsp_stapling off`,就能让Caddy瞬间起飞!就像关掉一个总在转圈加载的无用功能,安全不受影响,启动速度却快得飞起~ 🚀

1.启动速度优化

每次启动的时候总感觉非常慢,足足等了一分多钟才启动,这能忍?

`docker logs -f caddy`查看日志发现每次启动的时候有报错:

{"level":"warn","ts":1764044044.1994126,"logger":"tls","msg":"stapling OCSP","error":"no OCSP stapling for [我的网址1 我的网址1]: making OCSP request: Post \"http://ocsp.digicert.com\": dial tcp 2.23.77.188:80: i/o timeout"}
{"level":"warn","ts":1764044074.2196717,"logger":"tls","msg":"stapling OCSP","error":"no OCSP stapling for [我的网址2 我的网址2]: making OCSP request: Post \"http://ocsp.digicert.com\": dial tcp 2.23.77.188:80: i/o timeout"}
{"level":"warn","ts":1764044104.2433507,"logger":"tls","msg":"stapling OCSP","error":"no OCSP stapling for [我的网址3 我的网址3]: making OCSP request: Post \"http://ocsp.digicert.com\": dial tcp 23.196.193.245:80: i/o timeout"}

(出于隐私原因,日志里面的网址我手动隐藏了)

通过查看启动实时日志能确认,就是这三个报错拖了一分多钟。翻阅了一下caddy相关工作机制,"msg":"stapling OCSP"是 Caddy 的一个优化功能(OCSP 封套)。它试图去连接证书颁发机构(这里是 DigiCert)的服务器,查询我的 SSL 证书是否被吊销,并将结果缓存下来。这样访客的浏览器就不用自己去查了,能加快网页加载速度。

但是问题来了,国内服务器好多根本连不上ocsp.digicert.com,或者访问非常缓慢,这个加速加载的机制并没有起到效果,反而拖慢了caddy的启动。而且caddy默认连接超时时间为30秒,三个域名一个个轮询,足足花了一分多钟,这一分多钟里它除了等响应什么都没干,这不是白白浪费时间吗?

既然服务器连不上 DigiCert,这个功能反正也废了,不如直接关掉它。这对我们的 HTTPS 安全性没有任何影响,HTTPS 依然会正常工作。

我们在caddyfile最开头增加一个全局配置块,加入 ocsp_stapling off

{
    # === 新增这一块全局配置 ===
    ocsp_stapling off
}

# 下面是我们原有的网站配置 ...
你的域名 {
    # ...
}

之后关闭caddy,重载配置,然后重启caddy:

bash
/usr/bin/caddy reload --config /etc/caddy/Caddyfile
/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

如果你的caddy在docker容器,使用:

bash
docker restart caddy

之后看日志,能发现caddy很快就启动完成了:

{"level":"info","ts":1764050344.7754807,"logger":"tls","msg":"finished cleaning storage units"}