Nginx 反向代理配置 React 前端与 Python 后端
网罗开发小红书、快手、视频号同名大家好我是展菲目前在上市企业从事人工智能项目研发管理工作平时热衷于分享各种编程领域的软硬技能知识以及前沿技术包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。图书作者《ESP32-C3 物联网工程开发实战》图书作者《SwiftUI 入门进阶与实战》超级个体COC上海社区主理人特约讲师大学讲师谷歌亚马逊分享嘉宾科技博主华为HDE/HDG我的博客内容涵盖广泛主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告同时也会提供产品优缺点分析、横向对比并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。展菲您的前沿技术领航员 大家好我是展菲 全网搜索“展菲”即可纵览我在各大平台的知识足迹。 公众号“Swift社区”每周定时推送干货满满的技术长文从新兴框架的剖析到运维实战的复盘助您技术进阶之路畅通无阻。 微信端添加好友“fzhanfei”与我直接交流不管是项目瓶颈的求助还是行业趋势的探讨随时畅所欲言。 最新动态2025 年 3 月 17 日快来加入技术社区一起挖掘技术的无限潜能携手迈向数字化新征程文章目录前言整体架构基础 server 与静态资源反向代理 /api 到 Python 后端路径是否带 /api 的两种写法超时与 body 大小HTTPS 与 80 跳转常见问题总结前言前后端分离项目里前端通常是 React 打包后的静态资源后端是 PythonFastAPI/Flask提供的 API。生产环境一般用 Nginx 做统一入口对外只暴露 80/443静态资源由 Nginx 直接返回/api等路径转发到后端进程这样既能隐藏后端端口、又便于做 HTTPS 和缓存。本文只讲 Nginx 反向代理的核心配置思路和关键片段不贴完整可运行 Demo便于快速接入和排查问题。整体架构客户端 → Nginx:80/443 ├── / → 静态资源React build 目录 └── /api → 反向代理到 Python 后端如 127.0.0.1:8000前端npm run build后得到build或dist目录配置 Nginx 的root指向该目录。后端用 Gunicorn/Uvicorn 监听本机端口如 8000只对本机开放Nginx 用proxy_pass把/api转到该端口。基础 server 与静态资源在 Nginx 的conf.d或sites-available下新建一个server块例如server { listen 80; server_name your-domain.com; # 前端静态资源 root /var/www/app/frontend/build; index index.html; location / { try_files $uri $uri/ /index.html; } }要点root指向 React 打包后的目录请求/或/xxx时Nginx 会先找对应文件找不到再找目录最后回退到index.html这样前端的 React Router 才能正确处理浏览器直接访问或刷新子路径。try_files$uri表示先找同名文件$uri/表示找同名目录下的默认页最后/index.html交给 SPA 自己路由。反向代理 /api 到 Python 后端在同一个server里增加location /apilocation /api { proxy_pass http://127.0.0.1:8000; proxy_http_version 1.1; 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_pass后端实际监听地址若后端是http://127.0.0.1:8000且后端路由是/api/xxx这里写http://127.0.0.1:8000即可若后端根路径是/则前端应请求/api/xxxNginx 会把/api/xxx原样转给后端后端需挂载在/api下如 FastAPI 的app FastAPI(prefix/api)或做路径重写。X-Forwarded-Proto若前面还有 HTTPS 终结后端需要知道原始协议时设为$scheme后端可信任该头做跳转或生成 URL。Host后端若按 Host 做虚拟主机或校验应传原始 Host。路径是否带 /api 的两种写法方式一前端请求 /api/xxx后端也以 /api 为前缀前端axios.get(/api/users)Nginxlocation /api { proxy_pass http://127.0.0.1:8000; }注意末尾无斜杠转发到后端的请求路径仍是/api/users后端需挂载在/api例如 FastAPIapp FastAPI(prefix/api)方式二后端根路径是 /Nginx 做 stripNginxlocation /api/ { proxy_pass http://127.0.0.1:8000/; }注意两边都有斜杠请求/api/users会被转成http://127.0.0.1:8000/users后端只需挂载/users等路由。按你们前后端约定选一种即可关键是proxy_pass末尾有没有斜杠、以及后端路由前缀要一致。超时与 body 大小若接口有上传或长耗时可适当增大超时和 body 限制location /api { proxy_pass http://127.0.0.1:8000; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; client_max_body_size 20M; 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; }HTTPS 与 80 跳转正式环境建议全站 HTTPS。用 Certbot 申请证书后可保留 80 仅做跳转server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; root /var/www/app/frontend/build; index index.html; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; } }常见问题现象可能原因处理思路刷新子路径 404SPA 未回退到 index.html检查try_files最后是否指向/index.html接口 502后端未启动或端口不对确认 Gunicorn/Uvicorn 监听地址与 proxy_pass 一致接口 404路径前缀不一致对照前端请求路径、Nginx proxy_pass 末尾斜杠、后端 prefix上传大文件失败body 超限或超时增大client_max_body_size与 proxy_*_timeout总结Nginx 反向代理前后端分离项目静态资源用roottry_files指向 React build 目录并回退到index.html/api用proxy_pass转到 Python 后端并设置 Host、X-Real-IP、X-Forwarded-Proto 等头。注意proxy_pass末尾斜杠与后端路由前缀一致按需调整超时与 body 大小生产环境配合 HTTPS 与 80 跳转即可。

相关新闻

从零开始学虚拟化:性能优化全指南(资源分配 + 存储网络 + 监控)

从零开始学虚拟化:性能优化全指南(资源分配 + 存储网络 + 监控)

从零开始学虚拟化:性能优化全指南(资源分配 存储网络 监控) 虚拟化环境的性能瓶颈直接决定业务运行效率,而资源超配竞争、配置不当、缺乏精准监控是虚拟化性能差的核心诱因。性能优化并非无限制分配硬件资源,而是通…

2026/7/3 14:30:46 阅读更多 →
【计算机毕业设计案例】基于BS的小区家政服务预约平台基于springboot+Java家政预约平台的设计与实现(程序+文档+讲解+定制)

【计算机毕业设计案例】基于BS的小区家政服务预约平台基于springboot+Java家政预约平台的设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/3 14:30:47 阅读更多 →
FBX AnimSequence] 动画长度13与导入帧率30 fps(子帧0.94)不兼容。动画必须与帧边界对齐。

FBX AnimSequence] 动画长度13与导入帧率30 fps(子帧0.94)不兼容。动画必须与帧边界对齐。

FBX : , AnimSequence] 动画长度13.398与导入帧率30 fps(子帧0.94)不兼容。动画必须与帧边界对齐。解决方法:打开 FBX Import 选项 → Animation勾选:对齐到最近帧边界/Snap to Closest Frame Boundary然后再导入就ok。

2026/7/3 2:26:01 阅读更多 →

最新新闻

告别传统测试困境:Catch2现代化测试框架的进阶实战指南

告别传统测试困境:Catch2现代化测试框架的进阶实战指南

告别传统测试困境:Catch2现代化测试框架的进阶实战指南 【免费下载链接】Catch2 A modern, C-native, test framework for unit-tests, TDD and BDD - using C14, C17 and later (C11 support is in v2.x branch, and C03 on the Catch1.x branch) 项目地址: http…

2026/7/5 18:39:31 阅读更多 →
3步让电子阅读器变身漫画图书馆:Kindle Comic Converter使用全攻略

3步让电子阅读器变身漫画图书馆:Kindle Comic Converter使用全攻略

3步让电子阅读器变身漫画图书馆:Kindle Comic Converter使用全攻略 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc 还在为电子阅读器上看漫…

2026/7/5 18:37:29 阅读更多 →
hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图 【免费下载链接】hexo-tag-aplayer Embed aplayer in Hexo posts/pages 项目地址: https://gitcode.com/gh_mirrors/he/hexo-tag-aplayer hexo-tag-aplayer是一款强大的Hexo标签插件,…

2026/7/5 18:35:29 阅读更多 →
网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案

网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案

网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中…

2026/7/5 18:33:28 阅读更多 →
如何扩展Runno:添加自定义编程语言运行时的完整指南

如何扩展Runno:添加自定义编程语言运行时的完整指南

如何扩展Runno:添加自定义编程语言运行时的完整指南 【免费下载链接】runno Sandboxed runtime for programming languages and WASI binaries. Works in the browser, on your server, or via MCP. 项目地址: https://gitcode.com/gh_mirrors/ru/runno Runn…

2026/7/5 18:33:28 阅读更多 →
对字符串排序的影响

对字符串排序的影响

字符串的大小比较并不是如C那样按照字符串字符内码大小顺序从头到尾来比较的。由于我是从C/C转过来的,我一直以来都以为.net 下字符串的比较规则和C是一样的,直到有一天我的程序在英文操作系统下出错。 .net 下,字符串的排序受 System.Threa…

2026/7/5 18:29:28 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻