0

我尝试了 fastApi 和 uvicorn。

但我想知道为什么当我在端口 80 中执行 uvicorn 时,它在端口 52384 上工作。52384 显示 api 响应但 80 没有。

在 dockerfile 中,我添加了EXPOSE 80 80.

// terminal
vscode ➜ /app (master ✗) $ lsof -i:80
vscode ➜ /app (master ✗) $ uvicorn main:app --port 80
INFO:     Started server process [1115]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:80 (Press CTRL+C to quit)
INFO:     127.0.0.1:52384 - "GET / HTTP/1.1" 200 OK
// python 
from typing import Optional

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}
4

1 回答 1

1

在您的情况下,127.0.0.1:52384是请求的源地址(客户端地址),目标端口是 80。传出请求的端口通常是从动态范围中随机选择的,您可以在此处了解更多信息。

于 2021-04-06T11:47:36.297 回答