一、准备阶段: 

1、安装linux上所需要的环境:npm  nodejs  nginx   pm2

//安装 npm(Node 包管理器)
sudo apt install npm//判断是否安装成功
npm -v//安装 Node.js(可以根据需要选择版本)
sudo apt install nodejs//判断是否安装成功
node-v//安装pm2
sudo npm install -g pm2
pm2 -v//安装nginx
sudo apt install nginxnginx -v

 

2、准备vue的dist包(npm run build) 和 express后端服务包(不用打包可以直接运行在服务器)

 

3、把打好的前后端包上传至服务器对应的目录,我使用的连接工具是finalShell(无脑好操作),如图所示我的前端包为dist后端包为backend,存放的文件路径是 /root/manager-web

 

二、启动后端服务: 

   1、进入backend目录,使用pm2命令启动(以下是pm2常见命令)

#启动
pm2 start server.js#查看状态
pm2 list#停止
pm2 stop server.js#重启
pm2 restart server.js#删除
pm2 delete server.js#日志 
pm2 logs pm2 logs server.js#性能监控
pm2 monit

三、开通防火墙:让用户可以访问 

#开通防火墙3000端口
sudo ufw allow 3000#启用防火墙
sudo ufw enable#禁用防火墙
sudo ufw disable#拒绝端口
sudo ufw deny 8080#删除规则
sudo ufw delete allow 8080#运行特定ip访问
sudo ufw allow from 192.168.1.100#查看已经配置的规则
sudo ufw status numbered#启用防火墙的日志
sudo ufw logging on

四、配置nginx、访问前端页面

server {# 监听 IPv4 地址的 8086 端口listen       8086;# 监听 IPv6 地址的 8086 端口listen       [::]:8086;# 服务器名称,这里使用 _ 表示通配符,表示该配置适用于所有主机名server_name  _;# 设置 web 根目录为 /root/manager-web/dist 目录root         /root/manager-web/dist;# 尝试访问请求的文件,如果文件不存在,则尝试访问目录,如果目录也不存在,则返回 /index.htmltry_files $uri $uri/ /index.html;# 配置对 /api/ 路径的请求进行代理转发location /api/ {# 将请求转发到本地的 127.0.0.1:3001 地址,且保持 /api/ 路径proxy_pass http://127.0.0.1:3001/api/;}# 设置错误日志文件的位置error_log /var/log/nginx/manager-error.log;# 设置访问日志文件的位置access_log /var/log/nginx/manager-access.log;
}

 这里值得一提的是  前端的get、post的配置地址应该是 http://(ip地址):8086/api

如果能访问页面就大工告成,完结撒花!!!

   

   

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

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

相关文章

PixiJS教程(004):点击事件交互

1.6 事件交互实现要求:点击宝剑,修改宝剑的颜色。1️⃣实现代码: // 为精灵添加交互事件 sprite.interactive true; sprite.on(click, () > {// 点击精灵时,改变精灵的颜色sprite.tint Math.random() * 0xFFFFFF; });说明&am…

创客匠人助力家庭教育IP破局:从0到1打造创始人个人品牌全攻略

一、IP定位:细分赛道的精准锚定与用户画像构建 在家庭教育8000亿市场规模的竞争中,创始人IP的差异化定位成为破局关键。创客匠人通过“标签化定位”工具,帮助教育者锁定垂直领域,如亲子沟通、青春期教育等细分赛道。以景丽霞老师…

使用坚果云扩容Zotero同步空间的简单快捷方法

本文介绍基于坚果云的WebDAV协议,用于文献管理软件Zotero的文件同步,从而实现Zotero存储空间扩容的方法。 在之前的文章Zotero文献管理软件入门使用方法:软件下载、文献导入、引文插入(https://blog.csdn.net/zhebushibiaoshifu/a…

Java启动脚本

Java启动脚本 编写代码,然后打包 Java-1.0-SNAPSHOT.jar public class test {public static void main(String[] args) {System.out.println("Hello IDEA");} }编写运行脚本 #!/bin/sh WORKDIR$(cd $(dirname $0); pwd) cd $WORKDIRexport JAVA_OPTS"…

VSCode使用ssh远程连接阿里云

1. 终端选择 Windows使用PowerShell Ubuntu和Mac使用Terminal 2. 设置ssh 2.1. 第一台电脑 生成密钥 ssh-keygen -o -t rsa -b 4096 -C "emailexample.com" 按三次回车 查看密钥 cat ~/.ssh/id_rsa.pub 拷贝密钥,粘贴到服务器的密钥框中 2.2. 第…

XLSR-Wav2Vec2:用于语音识别的无监督跨语言表示学习

摘要 本文提出了 XLSR,该方法通过从多种语言的原始语音波形中预训练单个模型,以学习跨语言的语音表示。我们基于 wav2vec 2.0 构建模型,该方法通过对掩蔽后的潜在语音表示解决对比任务进行训练,并联合学习在多种语言之间共享的潜…

图灵完备之路(数电学习三分钟)----数据选择器与总线

1.数据选择器之前我们学习了逻辑与算数的计算,得知两个数字之间的加减和与或的结果是不同的,而一个通用的数字电路不可能只有一个功能,所以我们将在本节引入电路选择器这一“器件”,来实现对两个输入的运算方式的选择,…

Linux下如何设置CUDA的路径

今天遇到一个关于CUDA的问题,我要跑的深度学习代码,他里面有cuda编程,需要编译。但是你运行就报错。 代码提示我大段报错。 (score-denoise) ubuntuGPUA10002:~/wbd/score-denoise_Transformerdepth20$ python train.py Detected CUDA fil…

js树的排序

树 树的前中后序遍历 树是一种重要的非线性数据结构,尤其是二叉树。二叉树的遍历是操作树的基础,主要有前序遍历、中序遍历和后序遍历三种方式。 前序遍历 访问顺序:根结点 -> 左子树 -> 右子树。 遍历规则:首先访问根结…

解码 Red Stuff:Walrus 高效可靠存储的引擎

Red Stuff 是 Walrus 所采用的二维(2D)纠删码协议,定义了数据如何被编码和存储。它是实现高效、安全、且高可用的去中心化存储的关键。通过 Red Stuff,Walrus 成功解决了去中心化存储系统常见的三大难题:安全性、复制效…

【ACP】阿里云云计算高级运维工程师--ACP

文章目录1、简要介绍2、核心特点3、考试相关信息4、适合人群1、简要介绍 阿里云云计算认证ACP(Alibaba Cloud Certified Professional)是面向云计算技术与应用从业者的专业级认证,旨在评估考生对阿里云云计算产品的理解、部署、运维及最佳实…

快速掌握Python编程基础

干货分享,感谢您的阅读!备注:本博客将自己初步学习Python的总结进行分享,希望大家通过本博客可以在短时间内快速掌握Python的基本程序编码能力,如有错误请留言指正,谢谢!(持续更新&a…

「Java案例」鸡兔同笼问题

案例解析 鸡兔同笼求解 《孙子算经》是中国古代重要的数学著作,成书于南北朝时期,其中就记载了一个有趣的问题:鸡和兔在同一个笼子里,鸡和兔共有n条腿, m个头,问鸡和兔各有多少只?编写一个程序…

BLDC电机-运动控制---stm32时钟树定时器SYSTICKRTC的学习

一、时钟树 二、基本定时器 三、通用定时器 四、高级定时器 五、SYSTICK 六、RTC

Implementing a User-Defined Preconditioner in PETSc

文章目录Implementing a User-Defined Preconditioner in PETScBasic ApproachExample ImplementationUsing Your PreconditionerAdvanced OptionsImportant NotesUsing PCShell to Implement User-Defined Preconditioners in PETScBasic Implementation StepsAdvanced Featur…

DotNetBrowser 3.3.0 版本发布啦!

#Chromium 137 安全修复一次调用即可下载 URL更新了 Widevine APIDOM 元素绝对边界 🔗 点击此处了解更多详情。 🆓 获取 30 天免费试用。

Android-自定义View的实战学习总结

一、自定义View歌词界面LrcView 类-->自定义的歌词视图1. 构造函数和属性初始化自定义 View 通常需要提供多个构造函数以支持不同的初始化方式。在 LrcView 中,提供了四个构造函数,最终调用 super 父类构造函数完成初始化, context.obtain…

Maven 在 Eclipse 中的使用指南

Maven 在 Eclipse 中的使用指南 概述 Maven 是一个强大的构建自动化工具,用于项目管理和构建。它简化了项目构建、依赖管理和项目报告等任务。Eclipse 是一个流行的集成开发环境(IDE),支持多种编程语言,包括 Java。本文将详细介绍如何在 Eclipse 中使用 Maven 进行项目管…

zxing去白边

2025年了,可能干不了几年了,还能写这种文章还是有点可笑。 背景 zxing库生成的二维码自带白边 分析 生产二维码主要分两步: 1.用QRCodeWriter生成BitMatrix信息 2.根据信息生成bitmap 问题在1。 生成二维码的尺寸实际是有一些规格的&a…

Linux操作系统之文件(三):缓冲区

前言: 上节课我们讲授重定向的概念时,曾提到了一点缓冲区的概念。本文将会为大家更详细的带来缓冲区的有关内容:用户级缓冲区是什么,以及其与内核级缓冲区的关系,最后,我会为大家模拟实现一下stdio.h的关于…