先给没看过前两集的佬们回顾一下:9/28 发帖问 1C1G 跑 docker 卡不卡,听劝开了 1G swap;9/29 把 docker 装上了,还踩了“用户没进 docker 组”的坑,Alist 和哪吒 agent 都迁进容器了,docker 本体加俩容器一共不到 400M,swap 基本没动,也没 OOM。
今天第三集:给 Alist 套个反代,整域名+https 访问。
为啥选 caddy:图它自动签证书,省事。我这水平配 nginx 证书怕把自己绕晕,先从简单的来。
过程记录:
-
先去 cloudflare 把 alist 的域名解析到小鸡 IP,TTL 自动,没开小云朵。
-
拉 caddy 镜像跑起来:
docker run -d --name caddy --restart always \
-p 80:80 -p 443:443 \
-v caddy_data:/data -v caddy_config:/config \
caddy:2-alpine
Caddyfile 就三行,反代到宿主机的 5244(alist 容器映射出来的端口)。
-
然后就栽了:caddy 起来了,但 https 一直转圈。看日志,证书申请失败,challenge 没过。
-
排查第一步:ss -tlnp 一看,80 端口被占了!之前装宝塔面板残留的 nginx 没卸干净,还在跑。systemctl stop nginx 再 disable,世界清净了。
-
重试还是不行。再看 caddy 日志,这次是 DNS 解析不到。ping 了一下域名,果然还没生效——cloudflare 刚加的解析,我这边等了大概 10 分钟才生效。别一加上解析就急着申请证书,血泪教训。
-
解析生效后重启 caddy,等了 40 多秒,证书下来了,https 正常打开。
现状:
- caddy 容器内存 30M 出头,现在 docker 本体+三个容器一共 430M 左右,swap 还是几乎没动。
- alist 走域名 https 访问正常,打开速度和之前 ip+端口直连感觉差不多。
踩坑小结:
- 80/443 被旧 nginx 占着,caddy 证书申请直接挂,先检查端口。
- 新加的 DNS 解析要等几分钟生效,别急。
- Caddyfile 里反代地址一开始写的 localhost,容器里解析不对,改成宿主机内网 ip 才好。
最后问下佬们:caddy 这样反代之后,alist 的直链下载速度会受影响吗?还想把哪吒 dashboard 也挂出来,是再加一个站点块还是用同一个域名加路径区分?小白求指点。
ai秒了,还在传统部署