在自动伸缩虚拟机上用 Python / Pip 部署
把 open-webui serve 作为 systemd 管理进程,运行在云平台自动伸缩虚拟机组中,例如 AWS ASG、Azure VMSS、GCP MIG。
前置条件
在开始前,请确保已经准备好 共享基础设施要求。
何时选择这种模式
- 组织已经有成熟的 VM 运维体系
- 合规或监管要求需要直接控制 OS 层
- 团队容器经验有限,但 Linux 管理能力强
- 你想用最直接的方式部署,而不引入容器编排
架构
安装
在每台 VM 上安装:
pip install open-webui[all]然后创建一个 systemd unit:
[Unit]
Description=Open WebUI
After=network.target
[Service]
Type=simple
User=openwebui
EnvironmentFile=/etc/open-webui/env
ExecStart=/usr/local/bin/open-webui serve
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target环境变量可放在 /etc/open-webui/env。
扩缩策略
- 用自动伸缩组按 CPU 或请求数扩缩 VM
- 负载均衡健康检查使用
/health - 保持
UVICORN_WORKERS=1 - 启用 sticky session,尽量让 WebSocket 固定打到同一实例
关键考虑点
| 考虑项 | 说明 |
|---|---|
| OS 维护 | 你需要自行负责系统更新、安全补丁和 Python 运行时管理 |
| Python 环境 | 建议固定 Python 版本,例如 3.11 |
| 存储 | 由于自动伸缩 VM 不共享本地磁盘,应使用对象存储或共享文件系统 |
| Tika | 可以每台 VM 都跑,也可以统一做成共享服务 |
| 更新 | 先缩到单实例,升级并完成迁移,再扩回去 |
如果你只需要 pip 安装基础信息,也可以先看 Quick Start。