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

news2025/5/23 11:37:22

服务部署单机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.coloradmin.cn/o/2383855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通义灵码 2.5 版深度评测:智能编程的边界在哪里?

通义灵码 2.5 版深度评测&#xff1a;智能编程的边界在哪里&#xff1f; 评测目标 全面测试智能体模式&#xff1a;是否真正具备自主决策能力&#xff1f;MCP 工具集成体验&#xff1a;能否提升开发效率&#xff1f;AI 记忆自感知能力&#xff1a;是否能真正理解开发者习惯&a…

电商项目-商品微服务-规格参数管理,分类与品牌管理需求分析

本文章介绍&#xff1a;规格参数管理与分类与品牌管理的需求分析和表结构的设计。 一、规格参数管理 规格参数模板是用于管理规格参数的单元。规格是例如颜色、手机运行内存等信息&#xff0c;参数是例如系统&#xff1a;安卓&#xff08;Android&#xff09;后置摄像头像素&…

零基础设计模式——创建型模式 - 工厂方法模式

第二部分&#xff1a;创建型模式 - 工厂方法模式 (Factory Method Pattern) 上一节我们学习了单例模式&#xff0c;它关注如何保证一个类只有一个实例。现在&#xff0c;我们来看另一个重要的创建型模式——工厂方法模式。它关注的是如何创建对象&#xff0c;但将创建的决定权…

蓝桥杯5130 健身

问题描述 小蓝要去健身&#xff0c;他可以在接下来的 1∼n 天中选择一些日子去健身。 他有 m 个健身计划&#xff0c;对于第 i 个健身计划&#xff0c;需要连续的 天&#xff0c;如果成功完成&#xff0c;可以获得健身增益 si​ &#xff0c;如果中断&#xff0c;得不到任何…

电商虚拟户:重构资金管理逻辑,解锁高效归集与智能分账新范式

一、电商虚拟户的底层架构与核心价值 在数字经济浪潮下&#xff0c;电商交易的复杂性与日俱增&#xff0c;传统账户体系已难以满足平台企业对资金管理的精细化需求。电商虚拟户作为基于银行或持牌支付机构账户体系的创新解决方案&#xff0c;通过构建“主账户子账户”的虚拟账户…

腾讯2025年校招笔试真题手撕(二)

一、题目 最近以比特币为代表的数字货币市场非常动荡&#xff0c;聪明的小明打算用马尔科夫链来建模股市。如图所示&#xff0c;该模型有三种状态&#xff1a;“行情稳定”&#xff0c;“行情大跌”以及“行情大涨”。每一个状态都以一定的概率转化到下一个状态。比如&#xf…

安装完dockers后就无法联网了,执行sudo nmcli con up Company-WiFi,一直在加载中

Docker服务状态检查 执行 systemctl status docker 确认服务是否正常 若未运行&#xff0c;使用 sudo systemctl start docker && sudo systemctl enable docker 网络配置冲突 Docker会创建docker0虚拟网桥&#xff0c;可能与宿主机网络冲突 检查路由表 ip route sho…

【深度学习新浪潮】2025年谷歌I/O开发者大会keynote观察

1. 2025年谷歌I/O开发者大会keynote重点信息 本次Google I/O大会的核心策略是降低AI使用门槛与加速开发者创新,通过端侧模型(Gemini Nano)、云端工具(Vertex AI)和基础设施(TPU)的全链路优化,进一步巩固其在生成式AI领域的领先地位。同时,高价订阅服务和企业级安全功…

案例分享——福建洋柄水库大桥智慧桥梁安全监测

项目背景 洋柄水库桥位于社马路(社店至马坪段)上&#xff0c;桥梁全长285m&#xff0c;桥梁中心桩号K15082跨径组合为 14x20m&#xff0c;全桥宽:33.8m&#xff0c;分左右双幅:上部结构采用空心板梁:桥采用柱式墩。 通过对桥梁结构长时间的定期观测&#xff0c;掌握桥梁在混凝…

鸿蒙操作系统架构:构建全场景智慧生态的分布式操作系统

鸿蒙操作系统(HarmonyOS)是华为推出的面向全场景的分布式操作系统,旨在为智能手机、智能家居、智能穿戴、车机等多种设备提供统一的操作系统平台。鸿蒙架构的核心设计理念是“一次开发,多端部署”,通过分布式技术实现设备间的无缝协同。本文将深入探讨鸿蒙的分层架构、分布…

NBA足球赛事直播源码体育直播M35模板赛事源码

源码名称&#xff1a;NBA足球赛事直播源码体育直播M35模板赛事源码 开发环境&#xff1a;帝国cms7.5 空间支持&#xff1a;phpmysql 带软件采集&#xff0c;可以挂着自动采集发布&#xff0c;无需人工操作&#xff01; 演示地址&#xff1a;https://www.52muban.com/shop/184…

自动化测试报告工具

自动化测试报告工具大全与实战指南 &#x1f4ca;&#x1f525; 在自动化测试流程中&#xff0c;测试用例的执行只是第一步&#xff0c;而测试报告的生成与可视化则是闭环的重要一环。无论是个人项目还是团队协作&#xff0c;高质量的测试报告都能帮助我们快速定位问题、衡量测…

python 中 SchedulerManager 使用踩坑

问题&#xff1a; 服务中我写了多个定时任务&#xff0c;如下&#xff1a; 发现到了定时时间&#xff0c;下面的任务就是不执行&#xff0c;&#xff0c;最后一个任务一个任务注释掉来测&#xff0c;发现了问题&#xff0c; self.scheduler_manager.add_cron_job(SearchQualit…

人工智能解析:技术革命下的认知重构

当生成式AI能够自主创作内容、设计方案甚至编写代码时&#xff0c;我们面对的不仅是工具革新&#xff0c;更是一场关于智能本质的认知革命。人工智能解析的核心&#xff0c;在于理解技术如何重塑人类解决问题和创造价值的底层逻辑——这种思维方式的转变&#xff0c;正成为数字…

【Linux】基础开发工具

文章目录 一、软件包管理器1. Linux下安装软件补充知识1&#xff1a;操作系统的生态补充知识2&#xff1a;我的云服务器是怎么知道去哪找软件包的呢&#xff1f; 2. 查看软件包3. 安装软件4. 卸载软件5. 安装源 二、编辑器Vim1. 命令模式 三、编译器gcc / g1. 程序编译流程补充…

OpenCV计算机视觉实战(7)——色彩空间详解

OpenCV计算机视觉实战&#xff08;7&#xff09;——色彩空间详解 0. 前言1. RGB/BGR 色彩空间2. HSV / Lab 色彩空间3. 颜色直方图分析与可视化小结系列链接 0. 前言 本文深入探讨了三种常见色彩空间&#xff1a;RGB/BGR、HSV 与 CIELAB&#xff0c;并介绍了 OpenCV 中色彩空…

【AI模型学习】上/下采样

文章目录 分割中的上/下采样下采样SegFormer和PVT&#xff08;使用卷积&#xff09;Swin-Unet&#xff08;使用 Patch Merging&#xff09; 上采样SegFormer&#xff08;interpolate&#xff09;Swin-Unet&#xff08;Patch Expanding&#xff09;逐级interpolate的方式反卷的方…

Unity Shader入门(更新中)

参考书籍&#xff1a;UnityShader入门精要&#xff08;冯乐乐著&#xff09; 参考视频&#xff1a;Bilibili《Unity Shader 入门精要》 写在前面&#xff1a;前置知识需要一些计算机组成原理、线性代数、Unity的基础 这篇记录一些学历过程中的理解和笔记&#xff08;更新中&…

嵌入式学习的第二十六天-系统编程-文件IO+目录

一、文件IO相关函数 1.read/write cp #include <fcntl.h> #include <sys/stat.h> #include <sys/types.h> #include <stdio.h> #include<unistd.h> #include<string.h>int main(int argc, char **argv) {if(argc<3){fprintf(stderr, …

珠宝课程小程序源码介绍

这款珠宝课程小程序源码&#xff0c;基于ThinkPHPFastAdminUniApp开发&#xff0c;功能丰富且实用。ThinkPHP提供稳定高效的后台服务&#xff0c;保障数据安全与处理速度&#xff1b;FastAdmin助力快速搭建管理后台&#xff0c;提升开发效率&#xff1b;UniApp则让小程序能多端…