域名访问 怎么创建反代方法

已经成功把项目跑起来了,设置域名反向代理(Reverse Proxy)是让它变得“专业”的最后一步。这样你就可以用 https://你的域名 访问,而不用输端口号,还会自动拥有那把安全的小锁头(HTTPS)。

考虑到你之前的环境配置经历,我强烈推荐使用 Caddy。 理由:Nginx 需要手动配置 SSL 证书(Certbot),比较繁琐容易出错;而 Caddy 只需要你告诉它域名,它会自动申请、配置并自动续期 HTTPS 证书,完全全自动。

以下是具体步骤:

第一步:域名解析 (DNS 设置)

在操作 VPS 之前,你必须先去你的域名服务商(如阿里云、腾讯云、NameSilo、Cloudflare 等)设置解析。

添加记录:

如果你的 VPS 是 IPv4:添加一个 A 记录,指向你的 VPS IP。

如果你的 VPS 是 纯 IPv6 (像你刚才展示的 2a02:…):添加一个 AAAA 记录,指向你的 IPv6 地址。

注意:如果你启用了 Cloudflare 的小云朵 (Proxy),它会自动处理 IPv6/IPv4 转换,非常方便。

第二步:安装 Caddy

在 Ubuntu 上安装 Caddy 非常简单。请依次执行:

# 1. 安装必要的依赖
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https

# 2. 添加 Caddy 官方源 Key
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

# 3. 添加源文件
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

# 4. 更新并安装
sudo apt update
sudo apt install caddy
第三步:配置反向代理 (最简单的一步)

Caddy 的配置文件非常人性化。

编辑配置文件

sudo nano /etc/caddy/Caddyfile

清空或替换里面的内容 把里面的内容全部删掉(或者注释掉),换成下面这几行。 ⚠️ 替换 你的域名.com 为你真实的域名。

代码段

你的域名.com {
    # 把流量转发给本地的 12345 端口
    reverse_proxy localhost:12345
}

如果你的机器是纯 IPv6 环境,且 localhost 不工作,可以将 localhost:12345 改为

[::1]:12345。

保存退出

按 Ctrl + O 保存

按 Enter 确认

按 Ctrl + X 退出

第四步:放行 80 和 443 端口

Caddy 申请证书需要用到 80 端口,网页访问需要 443 端口。

# Ubuntu 防火墙放行
sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload

(如果是甲骨文云等,别忘了去网页后台的安全组也放行这两个端口)

第五步:重启 Caddy 使配置生效
sudo systemctl restart caddy

查看状态(可选):

sudo systemctl status caddy

验证
现在,在浏览器里直接输入 https://你的域名.com。

第一次访问可能会稍微慢 1-2 秒,因为 Caddy 正在后台帮你申请 SSL 证书。

之后你就会看到你的“文件快递柜”,并且浏览器地址栏有一把安全锁 🔒。

常见问题排查
如果访问报错 502 Bad Gateway: 这说明 Caddy 运行正常,但它连不上你的 Python 项目。

确认你的 Python 项目还在运行 (sudo systemctl status filecodebox)。

确认端口没变。

如果是纯 IPv6 机器,尝试修改 Caddyfile,把 reverse_proxy localhost:12345 改成 reverse_proxy [::1]:12345 然后重启 Caddy。

在同一个机器上我还想反代别的项目 caddy配置文件怎么写在同一个机器上我还想反代别的项目 caddy配置文件怎么写

1. 编辑配置文件
sudo nano /etc/caddy/Caddyfile
2. 修改内容结构

将文件修改为如下格式(注意看结构,是一个域名对应一个花括号块):

代码段

# 第一个项目 (现有的 FileCodeBox)
share.abc.com {
    reverse_proxy localhost:12345
}

# 第二个项目 (比如你的新项目)
blog.abc.com {
    # 这里的 8080 改成你新项目实际运行的端口
    reverse_proxy localhost:8080
}

# 第三个项目...
demo.abc.com {
    reverse_proxy localhost:9000
}

注意:如果你的机器是纯 IPv6 环境,且新项目只监听了 IPv6,记得把 localhost 改成 [::1],例如 reverse_proxy [::1]:8080。

3. 保存并重启

保存文件 (Ctrl+O, Enter, Ctrl+X),然后重启 Caddy:

sudo systemctl restart caddy

请运行以下命令检查端口 3000 是否有东西在跑:

sudo ss -tulpn | grep 3000

**如果有输出:说明程序活着,稍等几秒再刷新网页。
**如果没输出:说明你的后端程序挂了,你需要先去启动那个运行在 3000 端口的程序。


关键前提:DNS 解析要跟上
在修改 Caddy 配置之前或之后,别忘了去你的域名服务商(阿里云/Cloudflare等):

添加新的解析记录:

如果你用了 blog.abc.com,就需要添加一个名为 blog 的记录。

记录值(IP地址)和之前的那个域名完全一样,指向同一个 VPS IP。

(如果是纯 IPv6 机器,记得是 AAAA 记录)。

Licensed under CC BY-NC-SA 4.0
热爱生活 学无止境
使用 Hugo 构建
主题 StackJimmy 设计