无法从子网访问在 Windows Server 2016 上运行的 FastAPI 服务器

问题描述 投票:0回答:1

我有一个在 Windows Server 2016 上运行的 Fast API Web 服务器(在诗歌 env shell 内)。我试图从同一子网中的另一台服务器访问它。超时了。但我可以在本地点击它。

类似地,我正在运行一个 apache Web 服务器

python3 -m http.server 8000
并且我可以成功命中它。

为什么我能够访问简单的 http.server 而不能访问 FastAPI (Uvicorn) 服务器?

Windows Server 2016 正在运行 IIS。

我的 FastAPI

main.py
文件

from fastapi import FastAPI, APIRouter
from fastapi.middleware.cors import CORSMiddleware


app = FastAPI()

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


@app.get('/')
def health():

    return {
        "Status": "Success",
        "Message": "Server running"
    }

启动命令 -

uvicorn main:app --reload --port 8000
。在诗歌环境 shell 中运行它。

iis fastapi windows-server subnet uvicorn
1个回答
0
投票

使用Uvicorn启动FastAPI服务器时,请检查Uvicorn绑定地址。默认情况下,Uvicorn 绑定到 127.0.0.1 (localhost)。请确保它绑定到服务器的 IP 地址或 0.0.0.0 以允许来自其他计算机的连接。

启动Uvicorn时,可以指定--host参数来绑定特定的IP地址。例如:

uvicorn main:app --reload --host 0.0.0.0 --port 8000

类似主题:如何从同一本地网络上的不同机器/IP 访问 FastAPI 后端?

© www.soinside.com 2019 - 2024. All rights reserved.