当前位置: 首页 > article >正文

【Nginx学习笔记】:Fastapi服务部署单机Nginx配置说明

服务部署单机Nginx配置说明

服务.conf配置文件:

upstream asr_backend {server 127.0.0.1:8010;
}server {listen 80;server_name your_domain.com;location / {proxy_pass http://localhost:8000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

这个 Nginx 配置 主要用于设置反向代理和负载均衡,接收客户端请求并转发给指定的 FastAPI 后端服务。以下是详细解释:


1️⃣ upstream 区域

upstream asr_backend {server 127.0.0.1:8000;
}
  • upstream:用来定义一组服务器的地址,通常用于负载均衡。如果有多个后端服务节点,可以在这里列出并设置负载均衡策略。
    • asr_backend:这是给一组后端服务器(即 FastAPI 服务节点)定义的名字。在后续的 proxy_pass 中使用。
    • server 127.0.0.1:8000:指定后端服务器的 IP 和端口号。在这个配置中,后端服务是运行在 本机 上的 8000 端口。如果有多个后端服务节点,也可以继续增加 server 行(如:server 127.0.0.1:8011;),实现负载均衡。

2️⃣ server 区域

server {listen 80;server_name your_domain.com;location / {proxy_pass http://localhost:8010;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
  • server:定义一个虚拟服务器,接收来自客户端的请求。

配置项解析

  1. listen 80;
    • 指定 Nginx 监听 80 端口,HTTP 默认端口。
    • 这是公开的入口端口,用户通过 http://your_domain.comhttp://<nginx_ip> 发起请求。
  2. server_name your_domain.com;
    • 配置域名,告诉 Nginx 哪个域名(或 IP 地址)会由此虚拟服务器处理。
    • 如果没有特殊需求,可以使用 localhost 或任何你希望接受请求的域名。如果是实际部署,your_domain.com 需要替换为实际的域名或服务器 IP 地址。
  3. location / { ... }
    • 配置请求的路径。这里使用了 /,表示匹配所有请求路径。
    • 可以通过 location 指定不同路径的转发规则,比如 /api//media/,等等。

proxy_pass 和头部设置

  • proxy_pass http://localhost:8000;
    • 这行表示 Nginx 将所有请求转发到 localhost:8000(即后端 FastAPI 服务)。
    • 如果在 upstream 配置中有多个服务器,proxy_pass 会通过负载均衡将请求分发到这些服务器。
  • proxy_set_header Host $host;
    • 设置传递给后端服务器的 Host 请求头,保留原始的主机名或 IP 地址。这对于某些后端服务的处理非常重要,尤其是当后端需要知道请求的目标主机名时。
  • proxy_set_header X-Real-IP $remote_addr;
    • 设置 X-Real-IP 请求头,将客户端的 IP 地址传递给后端服务。由于请求是通过代理(Nginx)转发的,后端服务默认只能看到 Nginx 的 IP 地址,X-Real-IP 确保后端能获取到真实的客户端 IP。
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    • X-Forwarded-For 是一个标准 HTTP 请求头,表示请求经过了哪些代理服务器。
    • 这里将真实的客户端 IP 地址添加到该头部,便于后端服务了解请求的源头。每次请求经过 Nginx 时,Nginx 会将它自己的 IP 地址附加到这个头部。

总结

  • upstream 用于定义一个后端服务池,如果有多个后端节点,Nginx 会将请求负载均衡地分发到这些节点。
  • server 区域配置了 Nginx 如何监听客户端请求并将其转发到后端服务。
  • proxy_pass 指定了请求的转发目标。
  • proxy_set_header 用来修改或添加请求头,确保后端服务能正确获取客户端的请求信息。
http://www.lryc.cn/news/2383855.html

相关文章:

  • 相机标定与图像处理涉及的核心坐标系
  • ​在 ASP.NET 中,HTTP 处理程序(HttpHandler)是处理 HTTP 请求的核心组件​
  • 通义灵码 2.5 版深度评测:智能编程的边界在哪里?
  • 电商项目-商品微服务-规格参数管理,分类与品牌管理需求分析
  • 零基础设计模式——创建型模式 - 工厂方法模式
  • LeetCode 404.左叶子之和的递归求解:终止条件与递归逻辑的深度剖析
  • 蓝桥杯5130 健身
  • 电商虚拟户:重构资金管理逻辑,解锁高效归集与智能分账新范式
  • 腾讯2025年校招笔试真题手撕(二)
  • DeepSeek快速搭建个人网页
  • 安装完dockers后就无法联网了,执行sudo nmcli con up Company-WiFi,一直在加载中
  • 【深度学习新浪潮】2025年谷歌I/O开发者大会keynote观察
  • 小球弹弹弹
  • 案例分享——福建洋柄水库大桥智慧桥梁安全监测
  • 鸿蒙操作系统架构:构建全场景智慧生态的分布式操作系统
  • NBA足球赛事直播源码体育直播M35模板赛事源码
  • 自动化测试报告工具
  • Elasticsearch 实战面试题,每个题目都会单独解析
  • python 中 SchedulerManager 使用踩坑
  • Python后端框架新星Robyn:性能与开发体验的双重革命
  • 人工智能解析:技术革命下的认知重构
  • 【Linux】基础开发工具
  • OpenCV计算机视觉实战(7)——色彩空间详解
  • 体育直播网站如何实现实时数据
  • 【AI模型学习】上/下采样
  • Unity Shader入门(更新中)
  • 嵌入式学习的第二十六天-系统编程-文件IO+目录
  • 珠宝课程小程序源码介绍
  • KNN模型思想与实现
  • 【信息系统项目管理师】第15章:项目风险管理 - 55个经典题目及详解