暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【环境部署】nodejs项目和vue项目的部署

ERGOisTESTING 2021-08-04
3666

【背景】

        为了实现测试组日常工作的量化管理,我设计了一个简单的日报周报系统,然后找了前端开发同事帮忙实现。开发提供了一个前后端分离的项目,前台是vue项目,后台是nodejs项目(不算严格意义上的“后台”)。我需要把它们部署到远程linux服务器上,方便测试组同事日常使用。


没用的运维技能增加了



【正文】

一、本地部署

(一)后台启动(nodejs)

1、redis服务端下载安装,并确认配置

    网上随便找个安装包解压缩后选择redis-server.exe文件双击启动,默认端口是6379,没有密码,一般不用改。

    查看项目src\config\index.ts文件中的redis连接配置

// A-使用我本地redis服务连接,D:\Redis-x64-3.2.100\redis-server.exe
export const redis_config = {
    port: 6379,
    hostname: '127.0.0.1'
}

2、数据库连接配置

    连接本地数据库,确认数据库配置,也是在src\config\index.ts文件中

// A本地数据库连接配置
export const mysql_config = {
     host:"127.0.0.1",
     port: 3306,
     user:"用户名",
     password: "密码",
     database: "实例名"
 };

3、node环境

    直接在idea中通过指令安装,安装完成后查看版本号能显示即安装成功


4、项目编译启动

也是在terminal中执行

编译命令:npm run grunt

启动命令:npm run start


(二)前台启动(vue)

1、确认后端服务地址与端口

开发模式:.env.development

生产模式:.env.production

    改成刚才启动的后端项目的端口,IP可以用127.0.0.1或者localhost或者使用局域网中的IP更佳。

# base api-本地

VUE_APP_BASE_API = 'http://127.0.0.1:8193'

2、前端项目启动端口配置

    vue.config.js中可以配置启动端口号,假设使用9528端口

3、编译与启动

编译命令:npm run build:prod

启动命令:npm run dev

4、前台访问

前后台都启动成功后再浏览器访问:

http://localhost:9528/


二、linux服务器远程部署

(一)环境准备

1、安装node

sudo yum install nodejs

(默认会把依赖和npm一起装了)

(node -v 和npm -v显示版本则安装成功)

2、安装pm2

npm install pm2 -g


(二)后台启动(nodejs)

1、redis和数据库配置调整后打包

    连接redis和数据库改下ip端口这些信息,注意redis要是有密码的话加个opts.auth_pass的配置,需要注意对应redis.ts设置。

2、上传项目并启动

    将整个项目上传到linux服务器上,并在bin目录下执行

pm2 start www.js (www使用实际名称)


(三)前台启动(vue)

1、确认

2、上传项目并启动

    将整个项目上传到linux服务器上,并在项目根目录下执行 

pm2 start npm -- run dev


3、确认运行状态

指令:pm2 list


(四)报错日志

默认路径:/root/.pm2/logs

目录下面有errorlog可以查看报错信息


(五)常用pm2指令

1、根据id启动(假设id为0)

 pm2 start 0

2、启动所有

 pm2 start all

3、根据id停止(假设id为0)

 pm2 stop 0

4、停止所有

 pm2 stop all

5、根据id重启(假设id为0)

 pm2 restart 0

6、重启所有

 pm2 restart all

7、根据id删除(假设id为0)

 pm2 delete 0

8、删除所有

 pm2 delete all

……



【结语】

    主要就是熟悉各种配置文件,后台项目部署到服务器上后可以启动本地前台连接试试能不能用,能用了再把前台项目部署到服务器上。

   vue项目还可以通过tomcat发布,不过打包的时候需要注意router/index.js的base配置,不然可能首页显示一片空白。

    关于这个日报周报系统,等先使用一阵子,下次给各位展示下。


文章转载自ERGOisTESTING,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论