Nginx配置运行python的uvicorn项目

Nginx配置运行python的uvicorn项目

项目代码

bash 复制代码
# main.py
from fastapi import FastAPI
import uvicorn

app = FastAPI()

# 示例1:GET接口(无参数)
@app.get("/hello")
def hello():
    return {"message": "Hello FastAPI"}

# 示例2:GET接口(带查询参数)
@app.get("/user/{user_id}")
def get_user(user_id: int, name: str = None):
    return {"user_id": user_id, "name": name}

# 示例3:POST接口(带JSON参数)
@app.post("/create-user")
def create_user(user: dict):
    return {"code": 200, "data": user, "msg": "创建成功"}

if __name__ == "__main__":
    # 启动服务:host=0.0.0.0 允许外部访问,port=8000
    uvicorn.run(app, host="0.0.0.0", port=8000)

运行

E:\demo>uvicorn fs:app --host 0.0.0.0 --port 8000

配置nginx

定义 Uvicorn 后端服务(可扩展多节点)

bash 复制代码
upstream uvicorn_server {
    # Uvicorn 运行的地址和端口(必须和启动命令一致)
    server 127.0.0.1:8000;
    # 可选:多节点负载均衡(如多 Uvicorn 实例)
    # server 127.0.0.1:8001;
    # server 127.0.0.1:8002;
}
server {
        listen        80;
        server_name  py.com;
        root   "E:/demo";
        # 客户端请求体最大尺寸(适配文件上传,根据需求调整)
	    client_max_body_size 100M;

	    # 所有请求转发给 Uvicorn
	    location / {
	        # 反向代理到 Uvicorn 服务
	        proxy_pass http://uvicorn_server;
	        # 传递真实客户端 IP 和 Host
	        proxy_set_header Host $host;
	        proxy_set_header X-Real-IP $remote_addr;
	        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	        proxy_set_header X-Forwarded-Proto $scheme;
	        
	        # 超时配置(避免长连接断开)
	        proxy_connect_timeout 60s;
	        proxy_read_timeout 60s;
	        proxy_send_timeout 60s;
	        
	        # 缓冲区配置(优化大请求)
	        proxy_buffers 16 16k;
	        proxy_buffer_size 32k;
	    }
}

Postman调用

相关推荐
2601_9679873716 分钟前
Sqlite参考手册
数据库·python·sqlite·api·教程
用户019027581611 小时前
A 股到价提醒机器人:AlphaFeed + 飞书/钉钉 Webhook
python
特立独行的猫A1 小时前
Ionic + 仓颉语言的 cj-tauri 开发框架实战:开发精美移动端 APP
java·后端·python
高洁012 小时前
数据同化与动态状态估计:让孪生持续贴合现实
人工智能·python·深度学习·transformer·迁移学习
通信仿真爱好者2 小时前
第【139】期--基于深度学习的OFDM信道估计方法研究--python完整代码
python·深度学习·ofdm·信道估计
威哥爱编程2 小时前
模拟面试智能体开发实战 07:答完一题就点评一题,结构化输出给分建议,让每道题都变成复盘
python·agent·harmonyos
cpolar技术支持2 小时前
中文文件名排序跟拼音对不上:os.listdir 返回的是文件系统顺序,三个中文名按字节排结果正好相反
python·文件系统·cpolar·编码·排序
Thanks_ks2 小时前
【第 008 讲】在终端中运行 Python 程序:交互模式与脚本模式 | 绝对路径与相对路径 | 以模块方式运行 | 常见报错的识别与排查
python·异常处理·终端·脚本·命令行·cmd·python 解释器
威哥爱编程2 小时前
模拟面试智能体开发实战 08:总评报告先过三道闸,防泄题防夸大防错建议,才敢发到候选人手上
python·agent·harmonyos
郝学胜-神的一滴2 小时前
LangChain Skill 实现(渐进披露 On-Demand Skill,LangChain 官方 Deep Agent Skill 模式)
开发语言·python·langchain·numpy