【项目部署】vue项目部署xshell使用Nginx了解

vue项目部署

一般来说,前端只需要把代码使用npm run build 或者其它类似的自定义指令将代码进行打包,并提供给后端,就可以了。(如有问题再配合修改)
但学一些运维相关的知识,能让前端更好排查问题,是很有必要的。

在软件开发生命周期中,部署是将软件应用程序从开发环境转移到生产环境的过程。这个过程涉及到将代码、配置文件、数据库、静态资源等部署到目标服务器或云平台上,并确保应用程序能够正确运行和提供服务。

如何通过自己当前使用的电脑,连接操作目标服务器呢?可以使用类似 Xshell 的终端模拟软件来进行连接。Xshell 是一款常用的 SSH(Secure Shell)客户端,可以在 Windows 系统上运行。

xshell使用(连接目标服务器并进行文件传输操作)

  1. Xshell 7、Xftp 7下载及破解
  2. 获取目标服务器的连接信息:获得目标服务器的 IP 地址、用户名和密码等连接信息。这些信息通常由服务器管理员提供。(后端)
  3. 打开 Xshell&创建新会话:在 Xshell 中,点击 “File” 菜单,然后选择 “New Session”(或类似的选项),以创建一个新的会话。
    在这里插入图片描述
  4. 配置会话:在会话配置页面中,输入目标服务器的 IP 地址、用户名和密码等连接信息。你还可以选择其他选项,如端口号、加密算法等。确保提供的信息是准确的。
    在这里插入图片描述
  5. 连接目标服务器:保存会话配置后,你可以点击 “Connect”(或类似的按钮)开始连接目标服务器。Xshell 将会尝试建立与服务器的 SSH 连接。
    在这里插入图片描述
    如上图这样就是连接成功了。
  6. 点击新建文件传输按钮 就会进入xftp,可以进行文件传输(移动)了。
    在这里插入图片描述
    注意:服务器前面的圆点要是绿色的;如果是红色的,则表示连接断开了,需要重新连接。
    在这里插入图片描述

把打包后的项目文件,放入服务器的对应文件夹中之后,还需要使用nginx进行配置,不然也无法正常访问部署后的程序。

nginx

为什么要使用nginx呢?因为真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而已。
也就是通过使用nginx,实现反向代理,可以让外部访问内部数据。
在这里插入图片描述
某个具体接口的配置参考。

//nginx中的配置参考
location /sys/ {proxy_pass http://xxxx;index index.html;
}

主要nginx还是后端配置的,我只是在后端配置的基础上排查问题;后续有其它再补充吧。
一些注意事项:

  • 修改nginx.conf文件前要先备份(也就是复制一份= =)
  • 修改完nginx.conf文件,需要重启一下服务器:直接在根目录下执行:nginx -s reload 或者 systemctl restart nginx 就可以了。
  • 配置的进程如果被关闭了,就会报错still could not bind() 使用nginx -c /etc/nginx/nginx.conf 来启动这个配置 (路径的话根据自己的项目来)

nginx配置错误导致的一些前端问题

钉钉扫码的登录部署,报错"code":"11021"

扫码之后,浏览器一直重复调用,响应结果{“message”:“扫码登录失败,请刷新重试或选择其他登录方式”,“success”:false,“code”:“11021”}, =》原因nginx配置代理错误,导致找不到处理扫码结果的接口,于是报错了。

对于使用到的外部接口,如果在本地运行的时候用proxy代理后能正常使用,部署后不能正常使用,报错“405not allow”等,就需要nginx配置跨域。

报错“We’re sorry but XXX doesn’t work properly without JavaScript enabled”

解决过程:
1.前端以及nginx都统一为hash模式,仍然报错
2.确认Nginx中代理配置是否和前端代码里使用的一致,发现是配置错了,统一后则解决了上述问题。
参考,写了多个排查的方向,比较全

其它错误

  • 后端代码没部署(或者某个接口的代码只改了本地的没部署)。前端的proxy代理中使用的是部署后的地址。如果错了可能报404。

参考

Nginx 到底可以做什么?看完这篇你就懂了!
就是要让你搞懂Nginx,这篇就够了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/317605.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于对物料计量单位的维护

1、业务背景 一般情况下,在设计产品时,明确了物料的计量单位,并在维护物料主数据时,维护完整单位数据。 但也有例外情况,例如当设计产品时,不明确未来的打包方式,不明确要维护哪些种计量单位&…

如何把照片多余的地方擦除?一键消除图片上的瑕疵,简单又轻松,太方便了

在数字繁荣的时代,图片处理已然成为我们生活乐章中不可或缺的一部分,就如画师手中的画笔般灵动,摄影师镜头下的世界般多彩。然而,在捕捉或获取这些美丽的图片时,可能会不小心闯入一些不速之客,给画面带来瑕…

软件设计开发规程

目的在于为需求设计、开发、实现解决方案。根据适当情况,解决方案、设计和实现包括单独的产品、产品组件以及产品相关的生命周期的过程,或者它们的组合,以及包括如何利用准则进行接口设计。 软件开发、设计、实施、运维、投标、验收、售后等全…

物流实时数仓:数仓搭建(DWS)一

系列文章目录 物流实时数仓:采集通道搭建 物流实时数仓:数仓搭建 物流实时数仓:数仓搭建(DIM) 物流实时数仓:数仓搭建(DWD)一 物流实时数仓:数仓搭建(DWD&am…

【LeetCode每日一题】466. 统计重复个数

2024-1-2 文章目录 [466. 统计重复个数](https://leetcode.cn/problems/count-the-repetitions/)思路: 466. 统计重复个数 思路: ​ s1表示要重复的序列。n1表示要重复s1的次数。 ​ s2表示要判断的子序列。n2表示子序列s2在整个序列中重复的次数。返回…

2024年阿里云优惠券领取及使用教程

阿里云作为国内领先的云计算服务提供商,一直致力于为客户提供优质、高效的服务。为了更好地回馈客户,阿里云经常会推出各种优惠活动,其中就包括阿里云优惠券。本文将详细介绍如何领取及使用阿里云优惠券。 一、阿里云优惠券介绍 阿里云优惠券…

YOLOv5算法进阶改进(11)— 添加EMA注意力机制 | 基于跨空间学习的高效多尺度注意力模块

前言:Hello大家好,我是小哥谈。EMA(Exponential Moving Average)注意力机制是一种用于增强模型性能的注意力机制,它通过对模型的特征图进行加权平均来提取更有用的特征信息。具体来说,EMA注意力机制通过引入一个权重因子来调整特征图中每个位置的重要性,从而使模型能够更…

理解 RPC 与 Protobuf:完整指南

一、Protobuf 数据格式简析 Protobuf 是什么? 在数据密集型应用领域,Google 开发的 Protobuf 作为一种高效数据编码方式而广受欢迎。它胜任于 JSON 及 XML 对比,不仅在体积和速度上表现出色,而且其结构化方式优化了网络传输中的…

JavaSE学习笔记 2023-12-28 --MySQL

MySQL 1.数据库介绍 数据库:数据仓库 DataBase:简称DB,用于长期存储有结构的,大量的,共享的数据长期的:持久存储,永久存储 有结构:有类型,有内部的数据类型有关系,数据与数据之前是有关联的 大量的:大多数据库都是以文件系统存在的,可以将数据存储在磁盘中 共享的:多个应用之…

【QML】与 C++ 混合编程:互相调用函数

文章目录 qml 调用 C 函数案例 a:Q_INVOKABLE 标记 C 函数 视图设置进 qml 属性案例 b:qml 通过发送信号的方式,调用 Qt 槽函数 C调用qml函数 qml 调用 C 函数 qml 要使用 C 的函数有两个方法: 一种是,用 Q_INVOKABLE…

软件测试/测试开发丨Python 模块与包

python 模块与包 python 模块 项目目录结构 组成 package包module模块function方法 模块定义 定义 包含python定义和语句的文件.py文件作为脚本运行 导入模块 import 模块名from <模块名> import <方法 | 变量 | 类>from <模块名> import * 注意&a…

ECharts配置个性化图表:圆环、立体柱状图

官网调试地址&#xff1a;调试 效果图&#xff1a; 配置&#xff1a; option {color: [#29BEFF, #A2DC00, #FFC400, #FF7F5C, #CA99FC],// 提示窗tooltip: {trigger: item,show: false},// 图例legend: {top: 5%,left: center,show: false},// 数据series: [{name: Access …