IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用nginx反向代理 -> 正文阅读

[系统运维]Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用nginx反向代理

Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用nginx反向代理

前言

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

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


正文

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

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

开开心心打开网页登录,发现根本跳转不了,报错如下。
在这里插入图片描述
错误映入眼前的是404 Not Foundnginx,由于笔者并不是很了解nginx,所以就进入Nginx官网查看了中文文档

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

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

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

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

虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。以下截图来源于终于有人把正向代理和反向代理解释的明明白白了!非常推荐大家去看看,讲的非常详细!!!
在这里插入图片描述
回到正文,为什么会报错呢? 既然我已经有了devServer.proxy正向代理服务器,按理应该可以正常访问呀。但事实是,

编译打包后,前端页面成为了单独的静态资源,代理服务器devServer.proxy被抽离出去了。也就是说,devServer.proxy 不会一起打包到dist文件夹下,所以相对于我们没有配置代理服务器!!!!

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

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

以上,问题已经解决。


如果你觉得本篇文章对你有用,记得收藏、点赞!!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:59:27  更:2022-03-24 01:01:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:54:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码