谷歌云禁用CDN网络的情况下部署服务
1.docker环境安装
1.1 Docker 官方一键安装脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
1.2 验证安装:
docker version
docker compose version
2.安装并配置nezha面板与openlist
2.1 一键生成docker-compose.yml
cat > docker-compose.yml <<EOF
services:
# 哪吒面板服务
nezha:
container_name: nezha
image: ghcr.io/nezhahq/nezha:latest
network_mode: "host"
volumes:
- ./nezha_data:/dashboard/data
restart: unless-stopped
# openlist服务
openlist:
container_name: openlist
image: openlistteam/openlist:latest
network_mode: "host"
environment:
- TZ=Asia/Shanghai
- OPENLIST_ADMIN_PASSWORD=用户密码 # 修改登陆密码
volumes:
- ./oplist_data:/opt/openlist/data
restart: unless-stopped
EOF
2.2 设置./oplist_data文件夹的权限,确保 Openlist 容器可以正常读写
sudo chown -R 1001:1001 ./oplist_data
2.3 启动服务
docker compose up -d
3. Caddy2反向代理安装
在 Debian/Ubuntu 系统上安装 Caddy2,可以按照以下步骤操作:
3.1 安装必要的软件包
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
3.2 添加 Caddy 的 GPG 密钥
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
3.3 添加 Caddy 的软件源
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
3.4 更新软件包列表
sudo apt update
3.5 安装 Caddy
sudo apt install caddy
3.6 检查Caddy版本,确认安装成功
caddy version
4. Caddy2配置反向代理
4.1 编辑 Caddyfile
sudo nano /etc/caddy/Caddyfile
4.2 粘贴配置如下:
# 哪吒面板的反向代理配置
mb.hxjx.hidns.co {
reverse_proxy localhost:8008
}
# Openlist 的反向代理配置
oplist.hxjx.hidns.co {
reverse_proxy localhost:5244
}
保存并退出 (Ctrl + X -> Y -> Enter)。mb.hxjx.hidns.co、oplist.hxjx.hidns.co为域名并添加了A记录或AAA记录
4.3 重载 Caddy 配置使其生效:
sudo systemctl reload caddy
4.4 其它相关命令: 启动 Caddy 服务
systemctl start caddy
设置 Caddy 开机自启
systemctl enable caddy
重启 Caddy 服务
systemctl restart caddy
停止 Caddy 服务
systemctl stop caddy
修改配置文件后重载配置(不中断服务)
systemctl reload caddy
查看 Caddy 运行状态
systemctl status caddy
5. 补充配置
由于谷歌云关闭了CDN网络,需要配置新的证书发放机构。使用Google自家证书
5.1 获取谷歌证书的Key
VPS 终端里运行这条命令(这是 GCP 自带的工具):
gcloud beta publicca external-account-keys create
可能出现的情况:
-
如果直接成功:它会显示 keyId 和 b64MacKey。请立刻把这两个字符串发给我。
-
如果提示 API 未启用:它会问 API [publicca.googleapis.com] not enabled. Enable it? (y/N)。请输入 y 并回车。
-
如果提示未登录:它会报错让登录。如果遇到这个,请告诉我,我教你另一种简单的方法。
5.2 写入新的 Caddyfile(包含你的谷歌密钥)
cat > /etc/caddy/Caddyfile <<EOF
{
# 使用 Google Trust Services (GTS)
acme_ca https://dv.acme-v02.api.pki.goog/directory
acme_eab {
key_id b33a63ed1f543dc24236425112983a84
mac_key EZBbzPPpgbzQt_GDCGNJRSnM1c-xVEqXN18e4Iajrt1G7JDjEvaIA-7BnwBiNu15twNyqMrisHwhRYPqV6B7eA
}
email xuhxjxhk@gmail.com
}
# Openlist 的反向代理配置
oplist.hxjx.hidns.co {
reverse_proxy localhost:5244
}
# 哪吒面板的反向代理配置
mb.hxjx.hidns.co {
reverse_proxy localhost:8008
}
# Openlist 的反向代理配置2
oplist.cc.cd {
reverse_proxy localhost:5244
}
EOF
5.3 清理旧缓存(非常重要)
systemctl stop caddy
rm -rf /var/lib/caddy/.local/share/caddy
5.4 启动并见证奇迹
systemctl start caddy
journalctl -u caddy -n 50 -f
你会看到 Caddy 飞快地完成注册,日志里会出现 certificate obtained successfully。因为是谷歌自家的线路,这次应该在 1-2 秒内就能搞定。