当前位置: 首页 > 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 用来修改或添加请求头,确保后端服务能正确获取客户端的请求信息。

相关文章:

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

服务部署单机Nginx配置说明 服务.conf配置文件&#xff1a; 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 $remot…...

相机标定与图像处理涉及的核心坐标系

坐标系相互关系 #mermaid-svg-QxaMjIcgWVap0awV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QxaMjIcgWVap0awV .error-icon{fill:#552222;}#mermaid-svg-QxaMjIcgWVap0awV .error-text{fill:#552222;stroke:#552…...

​在 ASP.NET 中,HTTP 处理程序(HttpHandler)是处理 HTTP 请求的核心组件​

ASP.NET 中 HttpHandler 的用法详解 在 ASP.NET 中&#xff0c;HTTP 处理程序&#xff08;HttpHandler&#xff09;是处理 HTTP 请求的核心组件。根据你的配置文件&#xff0c;我将详细解释 <handlers> 节点的各种用法和配置选项。 1. HttpHandler 概述 HttpHandler 是…...

通义灵码 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;但将创建的决定权…...

LeetCode 404.左叶子之和的递归求解:终止条件与递归逻辑的深度剖析

一、题目解析&#xff1a;左叶子的定义与递归求解思路 题目描述 LeetCode 404. 左叶子之和要求计算二叉树中所有左叶子节点的值之和。左叶子的严格定义是&#xff1a;如果一个节点是其父节点的左子节点&#xff0c;并且它本身没有左右子节点&#xff0c;则称为左叶子。 关键…...

蓝桥杯5130 健身

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

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

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

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

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

DeepSeek快速搭建个人网页

一、环境准备 注册DeepSeek账号(https://www.deepseek.com/)安装VSCode插件:DeepSeek Coder准备基础开发环境:# 推荐使用Node.js环境 npm install -g live-server二、三步搭建基础框架 步骤1:生成基础模板 在DeepSeek对话框输入: 生成一个响应式个人网页的HTML模板,包…...

安装完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领域的领先地位。同时,高价订阅服务和企业级安全功…...

小球弹弹弹

一球从100米高度自由落下&#xff0c;每次落地后反跳回原高度的一半&#xff0c;再落下。求它在第十次落地时&#xff0c;共经过多少米&#xff1f;第十次反弹多高&#xff1f; 从第一次弹起到第二次落地前经过的路程为前一次弹起最高高度的一半乘以2&#xff0c;加上前面经过…...

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

项目背景 洋柄水库桥位于社马路(社店至马坪段)上&#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;高质量的测试报告都能帮助我们快速定位问题、衡量测…...

Elasticsearch 实战面试题,每个题目都会单独解析

Elasticsearch 在 Java 中最常用的客户端是什么&#xff1f;如何初始化一个 RestHighLevelClient&#xff1f;如何用 Spring Boot 快速集成 Elasticsearch&#xff1f;Spring Data Elasticsearch 如何定义实体类与索引的映射&#xff1f; ES的倒排索引和正排索引的区别及适用场…...

python 中 SchedulerManager 使用踩坑

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

Python后端框架新星Robyn:性能与开发体验的双重革命

引言&#xff1a;Python后端框架的进化之路 在Web开发领域&#xff0c;Python生态长期被Flask、Django等经典框架主导。随着异步编程需求的增长和高并发场景的普及&#xff0c;开发者对框架性能提出了更高要求。2023年&#xff0c;一款名为Robyn的新型Web框架横空出世&#xf…...

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

当生成式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 中色彩空…...

体育直播网站如何实现实时数据

⚽ 你是否曾好奇&#xff1a; 当你在看足球直播时&#xff0c;进球瞬间比分立刻刷新&#xff1b;篮球比赛中&#xff0c;球员数据实时跳动……这些毫秒级的赛事数据&#xff0c;究竟是如何"飞"到你手机上的&#xff1f; 今天&#xff0c;我们就来扒一扒体育直播网站…...

【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则让小程序能多端…...

KNN模型思想与实现

KNN算法简介 核心思想&#xff1a;通过样本在特征空间中k个最相似样本的多数类别来决定其类别归属。"附近的邻居确定你的属性"是核心逻辑 决策依据&#xff1a;采用"多数表决"原则&#xff0c;即统计k个最近邻样本中出现次数最多的类别 样本相似性度量 …...