在学习react后,自己仿照茶艺网写了个网站,大致功能完成后需要部署到线上,记录下部署过程。
一、购买阿里云服务器
这一步没啥好说的,按照阿里云官方的步骤直接走就行,我选的默认系统(Alibaba Cloud Linux 2.1903 LTS 64位 快速启动版)
二、连接到服务器
进入控制台到ecs实例后,点击远程连接,选择workbench
image.png
用户名会默认填好,只需要输入密码就行
三、上传前端和后端文件到服务器
使用scp命令将本地文件上传到服务器(如果有ftp等,可使用ftp工具上传)
scp -r ./* root@你的公网ip:你要上传的目录
例如 scp -r ./* root@1.1.1.1:/root/www
- 上传前端文件
先npm run build打包,然后进入到build目录下,运行上面的scp命令,我的文件是传入到了root下面的www目录,root下面需要自己创建www目录(mkdir www) - 上传后端文件
进入存放后端文件的目录下(记得把node_modules删除),使用scp命令将文件上传到服务器,我是传入到了root下面的services(也需要自己创建)
四、下载node、mongodb、nginx
- 安装nginx
yum update
yum install nginx
- 安装node
//下载压缩包
wget https://npm.taobao.org/mirrors/node/v14.16.0/node-v14.16.0-linux-x64.tar.xz
//解压
tar -xvf node-v14.16.0-linux-x64.tar.xz
//创建npm和node的软连接
ln -s /usr/local/node-v14.16.0-linux-x64/bin/node /usr/local/bin/
ln -s /usr/local/node-v14.16.0-linux-x64/bin/npm /usr/local/bin/
- 安装mongodb(参考https://www.cnblogs.com/wanghy898/p/10901092.html)
五、配置nginx
进入到nginx的安装目录
vi nginx.conf(按 i 进行编辑,esc退出编辑,:wq退出当前文件)
修改代理配置
server {
listen 80;
server_name www.xxx.xxx; //如果申请域名了可以配置域名,没有就配置公网ip
location / {
root /root/www; //前端文件存放的目录
index index.html index.htm;
}
location ~/api/ { //接口代理,匹配到api开头的接口都代理到7001端口,0.0.0.0这个地址在服务端表示所有的IPV4地址,可以代理到这个地址
proxy_pass http://0.0.0.0:7001;
}
}
使用nginx命令启动nginx,nginx -s reload重启nginx
六、导出/导入mongdb的数据
-
导出
可以使用mongoDB compass导出数据
image.png
进入到你导出的数据目录下,使用scp命令将json文件上传到服务器,我传到了root下的data文件夹
- 导入
进入到mongodb的bin目录下执行
./mongoimport -d 你的表名 -c 你的集合名称 -jsonArray --file 服务器上存放数据的地址
例如 ./mongoimport -d tea -c user --jsonArray --file /root/data/user.json
如果设置了用户密码使用下面命令导入
./mongoimport -u 用户名 -p 密码 -d tea -c user --jsonArray --file /root/data/user.json
tea是我的表名,user是用户的集合 后面是我的用户数据
使用mongod --bind_ip 0.0.0.0 --dbpath ./data/db --logpath ./log/mongodb.log --fork启动mongo数据库
七、启动node服务
启动项目
npm start
使用forever守护node服务 npm i forever -g
forever start services
八、修改www文件目录权限(如果打开页面不报403的话不用配置)
进入root/下执行这两行命令
#修改文件类型权限
find ./ -type f|xargs chmod 644
#修改文件夹类型权限
find ./ -type d|xargs chmod 755
参考文章:https://blog.csdn.net/xiamocsdn/article/details/100535519