add bind ips

This commit is contained in:
2026-08-17 14:33:50 +08:00
parent d27c2e229e
commit a8031e2e3b
3 changed files with 32 additions and 1 deletions

View File

@@ -238,6 +238,35 @@ sudo journalctl -u oral-trainer-api -f
当前上传后的处理任务运行在 API 进程中,因此只能使用一个 Uvicorn worker。需要多机或多 worker 时,应把 `VideoProcessor.process` 迁移到 Celery、RQ 或其他持久化任务队列。
### 3A. 内网直连(可选)
默认 FastAPI 只监听 `127.0.0.1:8000`,由 nginx 对外提供访问。如果只想在可信内网
(例如 `192.168.0.124` 这台虚拟机)直接上传,有两种方式:
方式一推荐不改后端nginx 已监听 `0.0.0.0:80`,直接访问
`http://192.168.0.124/admin` 或在浏览器上传即可,上传地址为
`http://192.168.0.124/api/v1/admin/videos/raw`
方式二(把 API 绑定到所有网卡):在 `sentence_api/.env` 增加一行:
```dotenv
ORAL_TRAINER_BIND_HOST=0.0.0.0
```
然后重建容器:
```bash
cd /opt/oral-trainer/sentence_api
docker compose up -d
ss -tlnp | grep 8000 # 应显示 0.0.0.0:8000
```
之后即可访问 `http://192.168.0.124:8000/healthz` 和内网上传接口。
安全提醒:`0.0.0.0` 会把 API 暴露给整个内网(管理接口受 `X-Admin-Key` 保护,但公开的
视频列表和 `/admin` 页面没有密钥)。仅建议在可信内网使用;公网部署务必保持
`127.0.0.1` + nginx或用防火墙限制来源 IP。
## 4. 配置 NginxHTTP 回源)
本机 Nginx 只监听 80 端口提供 HTTP不在本机终结 HTTPS。总出口线上边缘网关