首页 > 系统相关 >Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用nginx的proxy_pass 代理跨域转发

Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用nginx的proxy_pass 代理跨域转发

时间:2023-06-15 18:11:07浏览次数:45  
标签:跨域 xxx 代理 代理服务器 devServer proxy 服务器

Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用proxy_pass 代理跨域转发

前言
本篇文章用于记录项目前端部署上线遇到的问题,包含对问题的思考、解决思路,以及从中获得的收获。正确的部署流程我也写了一篇文章,供大家参考使用宝塔将Vue2+Nodejs全栈项目打包部署到腾讯云服务器(2022最新版保姆级详细教程)

如果文章有歧义,请各位大佬指出,避免误导更多的人!!

正文
最开始,我天真的将devServer.proxy中的代理地址改成了服务器地址,然后就执行了npm run build打包dist文件,将其部署上线。

devServer: {
  proxy: { // 配置跨域
​    '/api': {
​      target: 'http://xxx.xxx.xxx.xxx:8889/api/',
​      changOrigin: true,
​      pathRewrite: {
​        '^/api': ''
​      }
​    }
  },
 }

开开心心打开网页登录,发现根本跳转不了,报错如下。

 

为什么会报错呢?

因为在vue.config.js中配置的devServer.proxy只是在开发环境下将请求代理到后端服务器的本地服务,我们把项目打包成dist文件只把我们的组件等资源打包了,并不会将代理服务器给打包,所以项目中的请求路径不完整导致访问不到对应资源

怎么解决这个问题呢? 资源要被访问,那必然还是需要有另一个代理来装载它。我们部署上线最常见的就是使用proxy_pass 代理跨域转发! 只需要修改配置文件即可,添加proxy_pass即可,xxx.xxx.xxxx.xxx表示你的服务器地址,8889是我后端的访问端口。

 

location ^~/api/ {
     proxy_pass http://xxx.xxx.xxx.xxx:8889/api/;
 }

 

这里再补充一些正向代理和反向代理的知识

Nginx是俄罗斯人Igor Sysoev编写的轻量级Web服务器,它不仅是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

那么什么是反向代理服务器呢?以下内容来自百度百科

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。 同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

等等?这听着是不是和devServer.proxy的作用很像。但实际上,它们不是一类代理: devServer.proxy是正向代理,nginx是反向代理。

虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。以下截图来源于终于有人把正向代理和反向代理解释的明明白白了!,非常推荐大家去看看,讲的非常详细!!!

 

 

————————————————
版权声明:本文为CSDN博主「焦妮敲代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45890970/article/details/123654674

标签:跨域,xxx,代理,代理服务器,devServer,proxy,服务器
From: https://www.cnblogs.com/Im-Victor/p/17483711.html

相关文章

  • 深入理解ASEMI代理光宝LTV-152光耦的特性与应用
    编辑-Z光耦LTV-152是一种广泛应用于电子设备中的光电器件,它的主要功能是实现电路之间的隔离和信号传输。本文将深入探讨光耦LTV-152的特性和应用,帮助读者更好地理解和使用这种重要的电子元件。 一、光耦LTV-152的特性 1.高隔离电压:光耦LTV-152具有高达5000Vrms的隔离电压,......
  • ASEMI代理光宝光耦LTV-0314的应用与优势
    编辑-Z在电子设备的设计和制造过程中,光耦合器是一种至关重要的组件。它们在电路中起到隔离作用,保护电子设备免受电压冲击和电流过载的影响。今天,我们将深入探讨一种特殊的光耦合器——LTV-0314,它的特性、应用以及优势。 一、LTV-0314的特性 LTV-0314是一种高性能的光耦合器......
  • 代理IP与Socks5代理技术的应用与优势
    代理IP的概念和应用:代理IP是一种允许用户隐藏真实IP地址并通过代理服务器转发请求的技术。它的应用范围广泛,包括但不限于以下方面:提高匿名性:通过代理IP,用户可以隐藏自己的真实IP地址,从而保护个人隐私和身份安全。突破地理限制:使用代理IP可以绕过地理限制,访问被封锁或地区限制的网......
  • python使用aiohttp通过设置代理爬取基金数据
    说到python爬虫,我们就会想到它那强大的库,很多新手小白在选择框架的时候都会想到使用Scrapy,但是仅仅停留在会使用的阶段。在实际爬虫过程中遇到反爬机制是再常见不过的,今天为了增加对爬虫机制的理解,我们就通过手动实现多线程的爬虫过程,同时引入IP代理池进行基本的反爬操作。这里我们......
  • 为什么爬虫要使用住宅代理呢?
    爬虫使用住宅代理的主要原因是为了隐藏自己的真实IP地址,以避免被目标网站封禁或限制访问。住宅代理通常使用真实的住宅网络IP地址,与数据中心代理不同,更难被目标网站识别出来。此外,住宅代理还可以模拟真实用户的访问行为,提高爬虫的稳定性和可靠性。但需要注意的是,使用住宅代理也需......
  • python 检测免费代理ip是否有效
    python检测免费代理ip是否有效,免费ip获取地址https://www.zdaye.com/free/importrequestsIPAgents=["218.89.51.167:9091","120.37.121.209:9091","113.195.207.249:9091","113.195.207.249:9091","111.47.17......
  • 第一集:代理模式、动态代理和面向方面
    Java代码1.PublicclassViewActionimplementsAction2.{3.publicvoiddoAction()4.{5.//做View的动作6.System.out.println(“Youcouldviewtheinformation……”);7.......
  • 浏览器跨域问题与解法
    问题引入:什么是跨域请求违反了同源策略(协议、域名、端口有一个不同),就是跨域。在浏览器访问网站时协议、域名、端口都是确定的。如果目标资源中的协议、域名、端口有一个不同,就会产生跨域问题(浏览器会拦截该资源)。问题解决:CORS方案CORS方案是一种服务器端解决跨域问......
  • MySQL-ProxySQL中间件
    ProxySQL是基于MySQL的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离,支持Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置信息(无需重启ProxySQL服务),支持故障切换和SQL的过滤功能。相关ProxySQL的网站:https://www.proxysql.com/https://gith......
  • Socks5代理:加速网络连接与保障隐私的全方位解决方案
    在全球范围内,用户面临着各种互联网限制、地理区域限制和网络安全威胁。Socks5代理服务通过在用户和目标服务器之间建立中间层,为用户提供了一个更加安全和高效的通信渠道。它可以应用于多种场景,包括访问受限网站、提高网络速度和匿名浏览等。同时,Socks5代理还具备多种功能和协议支持......