腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

搞了一个个人博客,想要发布到腾讯云。由于之前从未接触过linux相关知识,所以在查了各种资料,挖了各种坑,重置了N次系统后终于将个人博客上线了。随手记录下正确的完整过程和维护常用的代码,希望对大家有所帮助

 

一、购买服务器与域名

这里我使用的是腾讯云轻量应用服务器,CentOS 7.6镜像,使用pm2+nginx部署项目。其他不多说,买就完事了,买完就能看到你的服务器了 腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

 

二、密钥与Xftp

我们需要一个密钥和Xftp软件绑定,以便于文件的传输。

点击密钥,新建密钥并保存到本地;然后点进服务器,找到实例信息→密钥→绑定密钥,选择新建的密钥进行绑定。

腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

下载Xftp下载地址:https://www.netsarang.com/zh/xftp/(有免费版需认证),安装到电脑后新建会话,在主机处输入你的公网ip,确定

腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

输入root,点击确定

腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

在Pubulic Key导入下载到本地的密钥,密码为空,确定即可连接成功

腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

 

三、开放端口

轻量应用服务器仅需点进你的服务器,详情,选择防火墙,点击添加规则即可。这里需要添加27017供数据库使用,5000为本人项目的后端端口,请根据实际情况更改避免出错。

腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

 

四、安装相关环境

我是直接用腾讯云提供的远程登录安装。puTTY对我感觉好像更麻烦。。。 腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

2.*  切换为root用户

sudo su root

这个特别重要!建议时刻观察是否处于root用户状态,否则部署过程中极易出现权限不足导致的错误!

腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目

2.1  安装nodejs与pm2

参考了司徒炼的文章:https://www.cnblogs.com/tourey-fatty/p/12551540.html

1、下载二进制文件

wget http://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz

下载非常的慢,需要不断ctrl+c中断并重新进行下载,最后再通过Xftp把下载成功的文件找出来重命名

2、解压

tar xvf node-v12.16.1-linux-x64.tar.xz

3、移动文件夹(也可以先cd到想存放的目录下执行1、2两步)

mv node-v12.16.1-linux-x64 /usr/local/nodejs

4、修改环境变量

vim /etc/profile

找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL,在代码上面添加两行代码(修改不了切换到英文输入法按下i,最后一行出现腾讯云轻量应用服务器部署vue+express+mongoose前后端分离项目即可编辑):

export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH

按下esc键,进入命令行模式,再依次按:wqEnter键完成保存;source /etc/profile使配置生效,输入node -v测试是否完成安装。

5、安装pm2

npm install pm2 -g

2.2  安装mongodb

参考了DT_小白的文章:https://blog.****.net/qq_41107231/article/details/108028319

1、下载二进制文件

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.13.tgz

2、解压

tar -zxvf mongodb-linux-x86_64-4.0.13

3、移动文件夹(也可以先cd到想存放的目录下执行1、2两步)

mv mongodb-linux-x86_64-4.0.13 /usr/local/mongodb

4、创建mongodb数据存储文件和日志文件(逐步执行)

cd /usr/local/mongodb/
mkdir data
mkdir logs
cd ./logs
touch mongodb.log
cd ../
mkdir etc
cd etc
touch mongodb.conf

配置mongodb.conf,代码如下:

dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
journal=true
port=27017
fork=true
4、修改环境变量
vim /etc/profile
在最后一行添加export PATH=$PATH:/usr/local/mongodb/mongodb-linux-x86_64-4.0.13/bin,保存。cd至你的mongodb/bin目录下启动服务mongo,输入netstat -lanp | grep "27017"查看mongodb是否已经启动成功 5、添加用户、安全认证
use admin
db
db.createUser({user:"root",pwd:"你的密码",roles:[{role:"root",db:"admin"}]})

关闭mongodb服务

db.shutdownServer()    

vim  mongodb.conf    重新进入配置文件,在最后一行加入auth=true完成mongodb安装

2.3  安装nginx

1、下载二进制文件

cd  /usr/local
wget http://nginx.org/download/nginx-1.18.0.tar.gz

2、解压

tar -zxvf nginx-1.18.0.tar.gz

 

五、上传待部署文件

1、打包vue前端项目

命令提示符输入npm  run build打包,将生成的dist文件夹,通过Xftp上传到/home

2、上传express后端项目

直接通过Xftp上传到/home

3、配置nginx

建议先在自己电脑下载并配置好ngnix跑一遍,再把./conf/nginx.conf文件通过Xftp上传上去,这样会省很多事,以下是我的配置文件:

http {

    include       mime.types;

    default_type  application/octet-stream;

    client_max_body_size 10M;           #设置客户端上传最大文件大小,ngnix默认值为1M,图片随便扔一张就报413了

    sendfile        on;

    keepalive_timeout  65;



    server {

        listen       80;

        server_name  localhost "你的域名";



        location / {

            root   /home/dist;

            index  index.html index.htm;

            try_files $uri $uri/ /index.html;        #vue-router配置

        }



        location /api/  {

            proxy_set_header X-Real-IP $remote_addr;

            proxy_pass http://127.0.0.1:5000/api/;        #后端端口地址

            proxy_redirect off;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_set_header Host $http_host;

            proxy_set_header X-Nginx-Proxy true;

        }

    }

}

 

六、上线测试

1、启动后端服务(pm2
cd /home
pm2 start 你的后端项目名

2、启动前端服务(ngnix

cd /home/usr/local/nginx/sbin
nginx

 

至此,项目上线成功~

   

附:维护相关

        项目上线之后,结果发现了诸多BUG,修改后需重新部署可以参考以下做法:

        将重写的接口/打包新的文件通过Xftp上传覆盖原来的文件,打开腾讯云远程登录

sudo su root
source /etc/profile
#前端接着输入nginx -s reload,后端接口则输入pm2 restart all即可完成简单的重新部署

 

上一篇:Mongoose Schema Validations


下一篇:MongoDB Schema和Model