Vue3项目在Nginx中配置代理后端IP

发布时间:2026/10/6 5:10:17

Vue3项目在Nginx中配置代理后端IP 在vite.config.js中配置的server.proxy仅在Vite 开发服务器即你运行npm run dev或yarn dev时生效。当你将 Vue 3 项目打包npm run build并部署到 Nginx 后这个配置文件不会被带进生产环境Nginx 也完全不会读取vite.config.js文件。1. 为什么无效Vite 的代理原理它基于 Node.js 的http-proxy库在开发时启动了一个中间件服务。浏览器访问http://localhost:3000/apiVite 服务器接收请求后转发给http://localhost:8060。Nginx 的托管原理Nginx 直接托管dist目录下的静态文件HTML/JS/CSS。当浏览器请求/api时请求直接打到 Nginx 监听的端口如 80/443Nginx 不会因为 Vite 的配置文件而自动代理。2. 如何在 Nginx 中实现相同的代理效果你需要在Nginx 的配置文件通常是nginx.conf或/etc/nginx/conf.d/your-project.conf中手动添加反向代理配置。假设你的 Vue 应用部署在/usr/share/nginx/html后端接口在http://localhost:8060配置如下server { listen 80; server_name your-domain.com; # 你的域名或 IP # 托管 Vue 静态文件 location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html; # 解决 Vue Router 刷新 404 问题 } # 代理 /api 请求等效于 Vite 的 proxy 配置 location /api { proxy_pass http://localhost:8060; # 对应 target # 等效于 changeOrigin: true 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; # 可选如果你在 Vite 中配置了 rewrite在这里对应修改 # 例如 Vite 的 rewrite: (path) path.replace(/^\/api/, ) # 则这里 proxy_pass 末尾加斜杠proxy_pass http://localhost:8060/; } }配置完成后执行nginx -t检查语法然后nginx -s reload重载配置即可生效。3. 特别提醒跨域CORS在Vite 开发环境中代理绕过了浏览器的跨域限制。在Nginx 生产环境中使用上述proxy_pass同样绕过了跨域因为请求是 Nginx 服务端转发的不需要在后端代码中额外开启 CORS除非前端直接请求后端 IP 而非通过 Nginx。4. 补充vite preview呢如果你运行npm run preview即vite preview --port 3000这个命令会启动一个生产预览服务器此时server.proxy是生效的。但这仅用于本地预览不适用于生产环境部署且性能远不如 Nginx不建议用这种方式替代 Nginx 对外提供服务。总结生产环境务必把代理逻辑写在 Nginx 配置中vite.config.js里的server配置只属于开发环境。如果你对 Nginx 配置不熟悉可以直接复制上面的location /api代码块使用。如果有路径重写等特殊需求可以告诉我我帮你调整配置。
延伸阅读

更多相关文章

2026/9/30 20:13:10

2027北京AI数字健康与智慧医疗展官方:94%展商满意度揭秘

展会的长期生命力,源自参展企业真实的体验感与复购意愿,2026年度赛逸展结束后的官方问卷调查数据显示,本届智慧医疗展整体展商满意度达到94%,老展商次年展位复订率稳定在78%,这两组核心数据,直观揭示了行业…

2026/10/6 5:08:36

一文搞懂CUDA线程模型:SM、SP、Block、Thread到底如何对应

学习CUDA的人,几乎都会在某个深夜盯着一堆缩写问出同一个问题:SM、SP、GRID、BLOCK、THREAD,这几个东西到底是怎么对应的?网上文章不少,但要么是概念罗列,要么直接丢一张芯片架构图让人自己悟。我当年从CPU…

2026/10/6 5:08:36

微信小程序钢琴弹奏:从音频延迟到交互优化的实践指南

简介:面向微信小程序入门者与音乐爱好者,《微信趣味小程序-钢琴弹奏》提供了一套轻量完整的微信端虚拟钢琴交互实现。压缩包共36个文件、仅427KB,包含21个按音阶命名的mp3钢琴采样、6个json配置与儿歌谱数据、4个js逻辑脚本,以及3…

2026/10/6 5:08:36

TransModeler交通事件建模与管理策略实战

做交通仿真的同行应该都有体会:常规的OD仿真做多了,人会陷入一种错觉,觉得路网模型跑通、信号配时调好、流量标定对得上,项目就算交付了。但真正把模型推到实战场景里,比如处理一起突发事故、一次临时管控、一段异常天…

2026/10/6 5:08:36

OpenShell完全指南:让Windows开始菜单回归经典可控

我第一次正经用 OpenShell,是因为一台 Windows 10 旧电脑已经卡到开始菜单要转好几秒才弹出来。那台机器是给长辈看视频用的,弹出什么推荐位、磁贴广告,对使用者都是纯干扰。当时我装完系统顺手装了 OpenShell,把开始菜单固定成传…

2026/10/6 5:08:36

Redis缓存击穿全解析:热点Key防护与多级缓存实战

做后端开发这十来年,Redis 相关的线上事故我处理过不少。要说哪种问题最容易让人头皮发麻,缓存击穿绝对排得上前三。它不是那种简单的"查不到数据"报错,而是在某个热点 Key 过期的瞬间,几万个请求同时涌向数据库&#x…

2026/10/6 5:03:36

西门子S7-200与MCGS触摸屏的自动加料机控制方案详解

做自动加料机这套控制系统,我把西门子S7-200和MCGS触摸屏的组合从头到尾捋了一遍,从IO分配、梯形图程序到组态画面,再到现场接线和调试,中间踩了不少坑。这篇内容就是我实际做过之后整理出来的完整记录,不光是给个程序…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/5 17:38:27

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 0:03:23

MR25H40CDF+STM32F031C6工业级高可靠数据存储方案

1. 项目概述:为什么在工业现场非得用 MR25H40CDF 配 STM32F031C6 做数据存储?在工厂产线的 PLC 控制柜里、在风电变流器的散热片背面、在矿井监测终端的金属外壳下,你经常能看到一块指甲盖大小的黑色芯片——它既不是 Flash,也不是…

2026/10/6 0:03:23

MRAM+STM32工业断电数据保全实战指南

1. 项目概述:为什么在工业现场非得用 MR25H40CDF 配 STM32F031C6 做数据存储?在工厂产线的PLC柜里、在野外无人值守的环境监测终端里、在高速运转的包装机控制板上,你经常能看到一块指甲盖大小的黑色芯片,旁边贴着“MR25H40CDF”丝…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑