You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置FastAPI绑定0.0.0.0:8000以部署在Fly.io?

解决Fly.io部署FastAPI的监听地址问题

首先明确:app = FastAPI()这行不需要添加任何参数,FastAPI实例本身不负责监听地址和端口,这是ASGI服务器(比如uvicorn)的职责。以下是几种常见场景的配置方法:

1. 用FastAPI内置命令启动

如果你用fastapi run命令启动服务,直接在命令后追加参数指定主机和端口:

fastapi run main.py --host 0.0.0.0 --port 8000

也可以通过环境变量传递配置:

HOST=0.0.0.0 PORT=8000 fastapi run main.py

2. Docker部署(Fly.io常用方式)

在Dockerfile中明确指定启动命令,确保绑定到0.0.0.0:8000:

FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .

# 方式一:用fastapi命令
CMD ["fastapi", "run", "main.py", "--host", "0.0.0.0", "--port", "8000"]

# 方式二:直接用uvicorn命令(效果一致)
# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

3. 通过Fly.io的fly.toml配置

可以在fly.toml中设置环境变量或直接指定启动命令:

[env]
HOST = "0.0.0.0"
PORT = "8000"

[deploy]
command = "fastapi run main.py"

或者直接把参数写进命令:

[deploy]
command = "fastapi run main.py --host 0.0.0.0 --port 8000"

核心原因:默认情况下,FastAPI的启动命令会绑定127.0.0.1(仅容器内部本地可访问),而Fly.io需要服务能被外部网络访问,所以必须绑定0.0.0.0才能让平台正确路由请求,解决延迟或无法连接的问题。

内容的提问来源于stack exchange,提问作者tprebenda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:21:04