跳到主要内容

主机资讯与使用指南

Caddy 配置域名与 HTTPS:给 Docker 应用加反向代理

在 Ubuntu 安装 Caddy,将域名指向本机应用,并检查证书申请、配置重载与 502 错误。

应用已能在本机访问,再配置域名

先确认 Docker 应用映射到本机端口,例如 127.0.0.1:3000。域名 A 记录指向 VPS;配置 AAAA 时也要确保 IPv6 可达。80、443 端口由 Caddy 监听,已有面板代理时沿用现有入口,避免端口冲突。

在 Ubuntu 添加官方软件源

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

软件包会建立 Caddy 系统服务。已安装的机器跳过软件源添加,直接编辑配置。

给应用增加一个 Caddyfile 配置块

编辑 /etc/caddy/Caddyfile,把 app.example.com 与 3000 换成实际域名和端口。已有其他站点时增加配置块,不要覆盖整个文件。

app.example.com {
    reverse_proxy 127.0.0.1:3000
}
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
sudo journalctl -u caddy --no-pager -n 60

确认域名访问与证书

验证成功后通过 https://app.example.com 打开应用。Caddy 会按域名配置处理自动 HTTPS,证书申请需要对应验证能够到达服务器。若申请失败,查看日志中的验证错误,并确认 DNS、端口和 CDN 代理设置。

502 时先检查应用端口

反向代理返回 502,先在 VPS 上访问上游地址。上游连接失败通常要检查容器状态、映射端口和监听地址;上游正常再检查 Caddyfile 与服务日志。

curl -I http://127.0.0.1:3000
sudo docker compose ps

Caddy 在宿主机时,127.0.0.1 指宿主机;Caddy 在容器中时,它指 Caddy 容器自身,不能照搬本篇的上游地址。

相关阅读