安装uv
一、官方独立安装
curl -LsSf https://astral.sh/uv/install.sh | sh
安装后生效:
source $HOME/.local/bin/env
验证:
uv --version
把项目用moba或者termcc放到阿里云服务器上
执行启动命令:
uv run main.py run --env=dev
服务启动了
放开8001端口
在阿里云安全组,放开8001端口
无法打开http://39.105.218.61:8001/api/v1/docs/
默认情况下,许多 Python Web 框架只监听 127.0.0.1,这会导致公网无法访问。
让我们先检查当前是否有 Python 进程在运行,并尝试以正确的方式重新启动服务,确保监听 0.0.0.0:
ps -ef | grep python | grep -v grep
执行一下
ps -ef | grep python | grep -v grep
root 899 1 0 2025 ? 00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root 981 1 0 2025 ? 00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
root 703413 1 0 Apr23 ? 00:02:36 /usr/bin/python3 -Es /usr/sbin/tuned -l -P
当前没有运行 FastAPI/uvicorn 相关的 Python 进程。之前的服务可能已经停止或启动失败。
重新执行启动命令
执行启动命令:
uv run main.py run --env=dev
服务已成功启动!但请注意日志中的关键信息:
服务地址 http://localhost:8001
这表明服务仍然只监听在 localhost (127.0.0.1),因此公网 IP (39.105.218.61) 无法访问。虽然您使用了 uv run main.py,但程序内部可能硬编码了监听地址,或者 main.py 的启动逻辑默认绑定了 localhost。
我们需要修改启动方式或检查代码配置。请尝试强制指定 host 为 0.0.0.0。由于您是使用 uv run main.py 启动的,可能需要在环境变量中指定,或者直接修改启动命令。
让我们先停止当前进程,然后尝试通过设置环境变量 HOST=0.0.0.0 来重新启动:
cd /root && HOST=0.0.0.0 nohup uv run main.py --env=dev > fastapi.log 2>&1 &
sleep 3 && ss -tlnp | grep 8001
同时,为了确保服务监听 0.0.0.0,我们需要检查该项目是否支持通过环境变量或命令行参数配置 host。通常 FastAPI 项目可以通过 HOST 环境变量或 --host 参数控制。
cd /root/FastapiAdmin-master/backend && HOST=0.0.0.0 nohup uv run main.py --env=dev > /root/fastapi.log 2>&1 &
阿里云AI助手也没能解决,代码问题问下CC
阿里云部署常见问题
问题:部署到阿里云后公网无法访问 API 文档
现象:使用 uv run main.py run --env=dev 启动服务后,本地可以访问 http://localhost:8001/api/v1/docs,但公网 IP 访问 http://39.105.218.61:8001/api/v1/docs 失败。
原因分析:
| 问题 | 说明 |
|---|---|
| 安全组未开放端口 | 阿里云安全组默认不开放自定义端口 |
| 服务绑定地址错误 | 默认 SERVER_HOST="localhost" 只允许本地访问 |
解决步骤:
1. 开放阿里云安全组端口
- 登录阿里云控制台 → ECS 实例管理
- 找到实例 → 安全组 → 配置规则
- 点击 手动添加,添加入方向规则:
- 端口范围:
8001/8001 - 授权对象:
0.0.0.0/0(或指定你的 IP) - 协议类型:TCP
- 端口范围:
2. 修改服务绑定地址
编辑服务器上的配置文件 env/.env.dev:
# 修改前(只允许本地访问)
SERVER_HOST = "localhost"
# 修改后(允许公网访问)
SERVER_HOST = "0.0.0.0"
3. 重启服务
# 停止原服务 (Ctrl+C)
# 重新启动
uv run main.py run --env=dev
验证:访问 http://39.105.218.61:8001/api/v1/docs 应该能正常打开 Swagger 文档。

1240

被折叠的 条评论
为什么被折叠?



