搞了一个个人博客,想要发布到腾讯云。由于之前从未接触过linux相关知识,所以在查了各种资料,挖了各种坑,重置了N次系统后终于将个人博客上线了。随手记录下正确的完整过程和维护常用的代码,希望对大家有所帮助
一、购买服务器与域名
这里我使用的是腾讯云轻量应用服务器,CentOS 7.6镜像,使用pm2+nginx部署项目。其他不多说,买就完事了,买完就能看到你的服务器了二、密钥与Xftp
我们需要一个密钥和Xftp软件绑定,以便于文件的传输。
点击密钥,新建密钥并保存到本地;然后点进服务器,找到实例信息→密钥→绑定密钥,选择新建的密钥进行绑定。
下载Xftp下载地址:https://www.netsarang.com/zh/xftp/(有免费版需认证),安装到电脑后新建会话,在主机处输入你的公网ip,确定
输入root,点击确定
在Pubulic Key导入下载到本地的密钥,密码为空,确定即可连接成功
三、开放端口
轻量应用服务器仅需点进你的服务器,详情,选择防火墙,点击添加规则即可。这里需要添加27017供数据库使用,5000为本人项目的后端端口,请根据实际情况更改避免出错。
四、安装相关环境
我是直接用腾讯云提供的远程登录安装。puTTY对我感觉好像更麻烦。。。2.* 切换为root用户
sudo su root
这个特别重要!建议时刻观察是否处于root用户状态,否则部署过程中极易出现权限不足导致的错误!
2.1 安装nodejs与pm2
参考了司徒炼的文章:https://www.cnblogs.com/tourey-fatty/p/12551540.html1、下载二进制文件
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,最后一行出现即可编辑):
export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH
按下esc
键,进入命令行模式,再依次按:wq
,Enter
键完成保存;source /etc/profile使配置生效,输入node -v测试是否完成安装。
5、安装pm2
npm install pm2 -g
2.2 安装mongodb
参考了DT_小白的文章:https://blog.****.net/qq_41107231/article/details/1080283191、下载二进制文件
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
。
建议先在自己电脑下载并配置好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即可完成简单的重新部署