Python 现代开发学习笔记

(三十四)入口转发与发布记录

1. 把站点入口接到应用进程

前面应用监听本机端口,外部入口可以由反向代理统一处理 HTTPS。下面用 Caddy 演示转发配置:本机先从两个 HTTP 入口访问,查询站点与预测 API 各自转发到对应 Uvicorn 端口。

# 项目文件:delivery/Caddyfile
# 本机练习先使用 HTTP,两个入口分别转发查询与预测。
http://localhost:8080 {
    reverse_proxy 127.0.0.1:8781
}
http://localhost:8081 {
    reverse_proxy 127.0.0.1:8782
}
# 在综合项目与交付目录运行;应用服务已经分别监听 8781 和 8782。
caddy run --config delivery/Caddyfile

此时浏览器通过 http://localhost:8080 查询,通过 http://localhost:8081 请求预测。部署到有域名的服务器时,把入口地址改为两个实际域名,解析指向服务器,按 Caddy 的 HTTPS 配置过程 接入证书与外部端口。请求路径和方法仍由应用路由处理;入口转发只是其中一段。

2. 留下可以重新执行的版本记录

每次发布写明以下内容,而非只记录“已经上线”。例如:代码提交 git rev-parse HEAD 的结果、锁定文件摘要、构建出的镜像标签或 digest、数据库结构版本 2、模型版本 v1、数据目录和备份文件位置,以及本次检查结果。

# 记录代码提交与本次使用的解释器、依赖,交给部署记录保存。
git rev-parse HEAD
uv run python --version
uv pip list
# 容器启动后查看镜像标识和进程状态。
docker compose images
docker compose ps

代码改变但表结构兼容时,可以重建应用并挂回原数据;结构迁移之后若要恢复旧程序,先核对旧程序能否读取当前结构,再使用已经保留的相应备份与版本。模型版本切换则按“验证、激活、重开、请求核对”的顺序执行。

笔记正文与全部题解 · Ctrl / ⌘ K