Docker 绑定域名与 HTTPS
把已跑通的 Docker 服务从 http://服务器IP:9321 换成自己的 HTTPS 域名。新手推荐 1Panel 面板版。
准备工作
开始前确认这几件事:
- Docker 版 LogVar 弹幕 API 已经运行。
- 你已经有域名;没有的话先看 先准备一个域名。
- 域名已经解析到这台 VPS 的公网 IP。
- 服务器安全组 / 防火墙已放行
80和443。 - 你知道自己的两个令牌:
TOKEN:播放器访问令牌。ADMIN_TOKEN:系统配置令牌。
如果 DNS 在 Cloudflare,第一次申请证书建议先把记录设为 DNS only。等 HTTPS 跑通后,再决定是否打开代理。
选择路线
你只需要选一条路线。1Panel 和宝塔用户看前两个标签;纯命令行用户在 Caddy 和 Nginx 里选一个。
适合已经按 Docker 部署 的 1Panel 面板版跑通服务的用户。下面统一把反向代理目标写成:
http://127.0.0.1:93211. 确认域名已经指向这台 VPS
先在域名服务商或 Cloudflare 里添加 A 记录,让域名指向 VPS 公网 IP。

这一步不是在 1Panel 里改 DNS。确认域名已经指到当前服务器后,再继续下面的面板操作。
2. 进入网站页面,检查 OpenResty
点击左侧 网站。如果提示还没有安装 OpenResty,需要先安装;如果已经启动,可以直接跳到创建网站。

3. 安装 OpenResty
点击左侧 应用商店,找到 OpenResty,点击 安装。

安装表单保持默认即可,确认 HTTP 端口是 80,HTTPS 端口是 443,然后点击 确认。

等待安装任务执行完成。

安装完成后,在 应用商店 → 已安装 里能看到 openresty 已启动。

4. 创建反向代理网站
回到左侧 网站,确认顶部显示 OpenResty 已启动,然后点击 创建。

创建页面默认可能停留在“一键部署”。这里要选择 反向代理。


5. 填写域名和代理地址
按下面填写:
- 域名:
你的域名 - 代号:可以填
danmu_api - 代理地址:
127.0.0.1:9321 - 备注:可选

这里的代理地址不要填公网 IP。LogVar 弹幕 API 和 OpenResty 在同一台服务器上,所以填 127.0.0.1:9321。
点击 确认。创建成功后,网站列表里能看到你的域名,协议暂时还是 HTTP。

6. 申请 HTTPS 证书
点击左侧 网站 → 证书,进入证书列表。

点击 申请证书。

按下面填写:
- 主域名:
你的域名 - Acme 账户:保持默认 Let's Encrypt 账户即可
- 验证方式:选择 HTTP
- 自动续签:保持勾选

HTTP 验证需要公网能访问服务器 80 端口。如果申请失败,先检查 DNS、服务器安全组和防火墙。
点击 确认 后等待申请任务完成。

证书列表里状态为 正常,说明证书申请成功。

7. 给网站启用 HTTPS
回到 网站 列表,点击你的域名这一行右侧的 配置。

在左侧配置菜单里点击 HTTPS。

打开 启用 HTTPS。

证书设置按下面选:
- HTTP 选项:访问 HTTP 自动跳转到 HTTPS
- SSL 选项:选择已有证书
- Acme 账户:选择面板里的 Let's Encrypt 账户
- 证书:选择刚才申请的
你的域名

点击页面底部 保存。

回到网站列表,确认协议已经变成 HTTPS,并显示证书过期时间。

8. 用 HTTPS 域名验证
浏览器打开:
https://你的域名/你的TOKEN
能看到 LogVar 弹幕 API 自检界面,就说明域名、反向代理和 HTTPS 已经跑通。
适合已经用宝塔面板管理网站的用户。下面统一把反向代理目标写成:
http://127.0.0.1:93211. 确认域名已经指向这台 VPS
先在域名服务商或 Cloudflare 里添加 A 记录,让域名指向 VPS 公网 IP。
2. 进入宝塔网站页面
登录宝塔面板,点击左侧 网站。

3. 切换到反向代理
在顶部项目类型里点击 反向代理,然后点击 添加反代。

4. 打开添加反代表单
表单里主要填 域名、目标 URL地址、发送域名(host)。

5. 填写域名和代理地址
按下面填写:
- 域名:
你的域名 - 目标 URL地址:
http://127.0.0.1:9321 - 发送域名(host):保持
$http_host - 备注:可填
LogVar Docker 反向代理

这里不要填公网 IP。LogVar 弹幕 API 和宝塔 Nginx 在同一台服务器上,所以目标地址填 127.0.0.1:9321。
点击 确定。创建成功后,反向代理列表里能看到域名,状态为 开启,SSL 暂时显示 未部署。

6. 进入 SSL 设置
点击这一行右侧 设置,在弹窗左侧点击 SSL。

7. 申请免费证书
切换到 免费证书,点击 申请证书。如果面板弹出绑定宝塔账号提示,按提示绑定账号后再回来继续申请。

申请方式建议选 HTTP验证。如果 DNS 在 Cloudflare,第一次申请证书前先把记录设为 DNS only。
证书申请成功后,回到反向代理列表,确认 SSL 不再显示“未部署”。
8. 用 HTTPS 域名验证
浏览器打开:
https://你的域名/你的TOKEN
能看到 LogVar 弹幕 API 页面,就说明宝塔反向代理和 HTTPS 已经跑通。
适合不用面板、希望用 Caddy 自动申请和续签 HTTPS 的服务器。命令都在 VPS 的 SSH 窗口里执行。
1. 先把 Docker 端口收口到本机
进入 Docker 部署目录:
cd ~/danmu-api打开 Compose 文件:
nano docker-compose.yml把原来的端口映射:
- "9321:9321"改成只监听本机:
- "127.0.0.1:9321:9321"保存后重建容器:
docker compose up -d检查端口绑定:
docker compose ps正常应看到类似:
127.0.0.1:9321->9321/tcp2. 配置 DNS
在域名 DNS 面板里添加一条 A 记录,把域名指向 VPS 公网 IP。
如果 DNS 在 Cloudflare,第一次先用 DNS only。证书签发成功后,再按需要打开代理。
3. 安装 Caddy
apt updateapt install -y caddycaddy versionsystemctl status caddy --no-pager --lines=0看到 Active: active (running) 就可以继续。
4. 写 Caddyfile
nano /etc/caddy/Caddyfile改成下面这样:
你的域名 {
encode gzip
reverse_proxy 127.0.0.1:9321
}只需要把 你的域名 换成自己的完整域名。
5. 校验并重载 Caddy
caddy validate --config /etc/caddy/Caddyfilesystemctl reload caddy先看到 Valid configuration,再 reload。
6. 用 HTTPS 域名验证
打开:
https://你的域名/你的TOKEN如果还要进入系统配置,再打开:
https://你的域名/你的ADMIN_TOKEN两个地址都能打开后,再按 部署后自检 跑一遍弹幕测试。
适合已经习惯 Nginx 的服务器。命令都在 VPS 的 SSH 窗口里执行。
1. 先把 Docker 端口收口到本机
进入 Docker 部署目录:
cd ~/danmu-api打开 Compose 文件:
nano docker-compose.yml把原来的端口映射:
- "9321:9321"改成只监听本机:
- "127.0.0.1:9321:9321"保存后重建容器:
docker compose up -d检查端口绑定:
docker compose ps正常应看到类似:
127.0.0.1:9321->9321/tcp2. 配置 DNS
在域名 DNS 面板里添加一条 A 记录,把域名指向 VPS 公网 IP。
如果 DNS 在 Cloudflare,第一次先用 DNS only。证书签发成功后,再按需要打开代理。
3. 安装 Nginx
apt updateapt install -y nginxnginx -vsystemctl status nginx --no-pager --lines=0看到 Active: active (running) 就可以继续。
4. 写 Nginx 站点配置
nano /etc/nginx/sites-available/danmu-api.conf写入下面内容,把 你的域名 换成自己的完整域名:
server {
server_name 你的域名;
location / {
proxy_pass http://127.0.0.1:9321;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}5. 启用站点并重载 Nginx
ln -s /etc/nginx/sites-available/danmu-api.conf /etc/nginx/sites-enabled/danmu-api.confrm -f /etc/nginx/sites-enabled/defaultnginx -tsystemctl reload nginx先看 nginx -t 是否通过,再 reload。
6. 安装 Certbot
apt install -y certbot python3-certbot-nginxcertbot --version7. 申请 HTTPS
certbot --nginx -d 你的域名如果提示是否把 HTTP 自动跳到 HTTPS,选择跳转。
看到证书申请成功后,这一步完成。
8. 用 HTTPS 域名验证
打开:
https://你的域名/你的TOKEN如果还要进入系统配置,再打开:
https://你的域名/你的ADMIN_TOKEN两个地址都能打开后,再按 部署后自检 跑一遍弹幕测试。
验证结果
最后用这三个地址检查:
https://你的域名/
https://你的域名/你的TOKEN
https://你的域名/你的ADMIN_TOKEN正常结果:
/能打开服务首页或说明页面。/你的TOKEN能打开普通自检页面,播放器也用这个地址。/你的ADMIN_TOKEN能进入系统配置页面。
常见问题
域名一直打不开
先检查:
- DNS 记录是否已经生效。
- 域名是否指向当前 VPS 的公网 IP。
- 云厂商安全组是否放行
80/443。 - 服务器防火墙是否放行
80/443。
如果使用 UFW,可以执行:
ufw allow 80/tcp
ufw allow 443/tcp证书申请失败
常见原因是:
- 域名没有真正指到这台 VPS。
80端口被安全组或防火墙拦住。- Cloudflare 一开始就开了橙云代理。
第一次申请证书时,Cloudflare 建议先用 DNS only。
HTTPS 打开后是 404
确认访问路径里带了正确令牌:
https://你的域名/你的TOKEN如果根路径能打开,但 /你的TOKEN 不行,回到部署时的 .env 或系统配置里确认 TOKEN 是否一致。
想关闭公网 9321 端口
命令行部署可以把 Compose 端口改成:
- "127.0.0.1:9321:9321"1Panel 部署也可以在 容器 → 编排 里编辑 Compose,把 "9321:9321" 改成 "127.0.0.1:9321:9321",然后重新保存编排。
改完后,外部只通过 https://你的域名/你的TOKEN 访问,http://服务器IP:9321/你的TOKEN 就不再作为公网入口使用。
反向代理 reload 后还是不通
Caddy 查看日志:
journalctl -u caddy -n 50 --no-pagerNginx 查看日志:
journalctl -u nginx -n 50 --no-pager1Panel 路线可以在 网站 → 日志 和 容器 → 日志 里分别看反代日志和 LogVar 弹幕 API 容器日志。
