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

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

vite.config.js中配置的server.proxy仅在Vite 开发服务器(即你运行npm run devyarn dev时)生效。当你将 Vue 3 项目打包(npm run build)并部署到 Nginx 后,这个配置文件不会被带进生产环境,Nginx 也完全不会读取vite.config.js文件。


1. 为什么无效?

  • Vite 的代理原理:它基于 Node.js 的http-proxy库,在开发时启动了一个中间件服务。浏览器访问http://localhost:3000/api,Vite 服务器接收请求后转发给http://localhost:8060
  • Nginx 的托管原理:Nginx 直接托管dist目录下的静态文件(HTML/JS/CSS)。当浏览器请求/api时,请求直接打到 Nginx 监听的端口(如 80/443),Nginx 不会因为 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代码块使用。如果有路径重写等特殊需求,可以告诉我,我帮你调整配置。

http://www.jsqmd.com/news/1394701/

相关文章:

  • 小龙虾免配置版直接使用引导,TopClaw解压即用三分钟享全部技能
  • 业内公认无人机维修培训** 高信誉机构教学实力更出众 - 湖南阳光技术
  • Pyinstaller打包DLL依赖缺失:从诊断到解决的完整指南
  • 主管药师考试看什么资料好?在岗药师碎片化备考全套资料汇总 - 资讯报道
  • 网络安全——AI正在学会入侵,而且比所有人预想的都快
  • 2026十大蛋白粉品牌怎么选?看蛋白矩阵、原料溯源、实测验证3个标准 - 资讯报道
  • 18.剪枝
  • DNS解析MX记录设置步骤和注意事项
  • 2026 年当下,陆良资质齐全的AI 搜索 优化平台哪个好,用对这招,你搜索时能比90%的人快3倍还不踩坑-抖盛盈商业服务 - 企业信息推荐-2
  • 张掖正规智能锁公司
  • 首次去茅台镇怎么选口碑好的源头酒厂服务商
  • 合法 TLS 证书仿社交平台钓鱼攻击机理与全域防御研究
  • 2027具身智能机器人技术展官方聚焦国家战略:
  • 2027北京AI数字健康与智慧医疗展官方:94%展商满意度揭秘
  • 球墨铸铁件加工后防锈水浸泡了,装配时还是发现锈点,怎么回事?
  • 上海君澜律师事务所孙青律师房产分割诉讼团队介绍 - 孙青律师13681945561
  • 上海君澜律师事务所孙青律师・上海房产分割诉讼专项 - 孙青律师13681945561
  • 思源宋体CN:开源免费商用中文字体配置完整指南
  • 聚焦 AI 数据治理与可观测,AWS 中国峰会有哪些 Data for AI 技术内容可看?
  • 建模师别只靠接单内卷!湖南梵映教育这套IP模式,批量跑出百万博主 - 生活动态圈
  • 微信小程序基础开发:从零到一快速上手
  • pandas.read_html 报错FileNotFoundError、OSError Traceback (most recent call last)
  • Awoo Installer:Nintendo Switch游戏安装终极指南
  • 收藏!小白也能看懂:AI时代如何守护你的数字资产安全?
  • Gitee Test 如何缓解自动化测试工具链碎片化:从测试资产、自动执行到研发闭环
  • 2026成都极致性价比家装装修公司大盘点:正规合规、口碑出众的服务商推荐及签约避坑全攻略 - 商业大观
  • 2026被问爆的健身蛋白粉怎么选?FoYes实测拆解不踩雷 - 资讯报道
  • Copilot能换成本地吗?深入解析本地化替代方案与技术实践
  • 9764358
  • 【COLM 2024】Mamba:线性时间序列建模的选择性状态空间|从高效序列架构演进视角