You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js部署:Caddy反向代理+Cloudflare TLS证书配置问题

问题解决指南

1. 8080端口HTTPS访问报错的根源

你的Node服务仅监听localhost:8080且未配置SSL证书,HTTPS请求需要先完成SSL握手,而你的服务不具备处理SSL协议的能力,因此直接返回ERR_SSL_PROTOCOL_ERROR。正确流程是用反向代理(如Caddy)处理HTTPS层,Node服务只负责处理HTTP业务请求。

2. Caddy反向代理配置修复(跳转index.html、POST 404)

默认Caddy会优先匹配静态文件,所以访问根路径时会自动查找index.html,而非转发到Node服务。调整Caddyfile,强制将所有请求转发到Node服务即可解决:

thespacebar.io www.thespacebar.io {
    reverse_proxy localhost:8080
    # 若需托管静态文件,单独指定路径(可选):
    # handle /static/* {
    #     file_server
    # }
}
  • 此配置会将所有请求(包括POST)直接转发到Node的8080端口,不再优先匹配静态文件。
  • 端口占用问题:先执行ps aux | grep caddy检查Caddy是否已在运行,或用lsof -i :80/lsof -i :443排查80/443端口是否被Nginx等其他服务占用,停止占用服务后再重启Caddy。

3. 为Caddy添加Cloudflare DNS模块

通过aapanel安装的Caddy默认不包含Cloudflare DNS扩展,需重新编译带模块的Caddy版本,步骤如下:

方式一:用xcaddy编译(通用方案)

  1. 安装xcaddy:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-xcaddy-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-xcaddy.list
sudo apt update && sudo apt install xcaddy
  1. 编译包含Cloudflare模块的Caddy:
xcaddy build --with github.com/caddy-dns/cloudflare
  1. 替换现有Caddy二进制文件:
sudo systemctl stop caddy
sudo mv ./caddy /usr/bin/caddy
sudo systemctl start caddy

配置Cloudflare TLS的Caddyfile示例:

thespacebar.io www.thespacebar.io {
    tls {
        dns cloudflare 你的Cloudflare_API_TOKEN
    }
    reverse_proxy localhost:8080
}

注意:使用Cloudflare的API Token(仅授予DNS编辑权限),不要使用全局API Key,避免权限过大风险。

内容的提问来源于stack exchange,提问作者yeln

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:35:40