服务器购买
略
鉴于我买的是阿里云的云服务器, 所以接下来的是阿里云的使用。
由于我使用的是密钥登录,所以需要配置密钥对
密钥对会在下面讲,这里就不多说。
由于需要开发端口,所以需要配置安全组
putty
可以通过阿里云提供的服务创建密钥对
https://help.aliyun.com/document_detail/51793.html?spm=5176.2020520101keypair.help.13.26634df5k8AVA0#concept-wy4-th1-ydb
也可以通过PUTTYGEN.EXE
https://www.cnblogs.com/baker95935/p/9810986.html
使用密钥对关联云服务器实例后, 需要重启一下云服务器
https://www.cnblogs.com/baker95935/p/9810435.html
putty 设置 keep live,保证不会一下子就断连
https://www.cnblogs.com/lovewhatIlove/p/16580861.html
我的后端代码是通过私有git 仓库上传的同步的, 前端代码是生成 dist文件夹直接通过 PSCP
pscp -P 22 -i C:\你的私钥文件 -C -r dist username@ip:云服务器的目录
https://www.cnblogs.com/wxsj/p/9816588.html
服务器安装相应环境
nodejs 安装
1 | wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.gz # 下载nodejs |
尝试一下1
2node -v
npm -vvim /etc/profile
修改系统配置source /etc/profile
配置生效1
2
3export NODE_HOME=/opt/nodejs12.16/
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
云服务器上更新 nodejs
2023-12-06 记录一下在云服务器上如何更新nodejs
新属性空值合并运算符
??
在低版本nodejs 会报错,,mongodb 需要更高的nodejs版本
- 重新下载一下,nodejs 版本, lts 长期版本已经是18.x 起,所以个人服务器建议至少要下载18.x版本
- 查看一下原来的 node,npm,
whereis npm
,ls -l /usr/local/bin/node
- 删除原来的软链,
rm -rf /usr/local/bin/node
,记住不要最后加 / - 重新生成一下软链,
ln -s
vim /etc/profile
修改配置, 修改原理 nodejs位置即可source /etc/profile
重新加载配置- 配置镜像源
安装pm2
pm2 可以管理多个nodejs项目npm install -g pm2
这个会有一个问题,
如果你要运行 pm2的话,node pm2
,
我的做法是pm2 软链接到 /usr/bin/pm2
下
重新配置
2023-12-06 记录一下在云服务器上如何更新pm2
- 删除软链
- npm install pm2, 建立软链
pm2 log
pm2 log
, 可以查看日志.pm2/logs/www-out.log
, 查看成功日志.pm2/logs/www-error.log
, 查看失败日志
MongoDB 安装
MongoDB 安装都是安装这个
https://www.runoob.com/mongodb/mongodb-linux-install.html
/opt/mongodb_4.2.23/config.conf 后台启动时的文件如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#日志文件位置
logpath=/var/log/mongodb/mongodb.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork = true
# 默认27017
port = 27017
# 数据库文件位置
dbpath= /var/lib/mongodb
# 启用定期记录CPU利用率和 I/O 等待
cpu = true
# 是否以安全认证方式运行,默认是不认证的非安全方式
noauth = true
# auth = true
# 详细记录输出
#verbose = true
bind_ip = 0.0.0.0
# 最大链接数
maxConns = 100
# 防止插入脏数据
objcheck = true
#pidfilepath:进程ID,没有指定则启动时候就没有PID文件
pidfilepath = /var/run/mongo.pid
启动和停止服务的命令mongod --config /opt/mongodb_4.2.23/config.conf
, 启动mongod --shutdown --config /opt/mongodb_4.2.23/config.conf
, 停止服务mongo
, 进入服务器
MongoDB import json 文件
本地导出json, 云上导入时报错,MongoDB Atlas mongoimport issues cannot decode array into a D
解决方案:https://stackoverflow.com/questions/58150528/mongodb-atlas-mongoimport-issues-cannot-decode-array-into-a-d
mongoimport --db [dbName] --collection [collectionName] --file [fileName] --jsonArray
nginx 安装
apt-get install -y nginx
新建配置文件/etc/nginx/conf.d/default.conf,
配置文件需要注意
- 这个配置需要
location //
,root /dist/
目录和location 需要判断是否需要加上/
upstream ...
这段代码是转发给后端接口 3000, 尝试通过 location 匹配但是没成功1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 转发到后端端口3000
upstream koa.server{
server localhost:3000;
}
server {
listen 80;
server_name ip ; # //你的公网ip
# url 匹配 ip
location / {
root /dist/index; # 前端代码目录
index index.html; # //该文件为目录下的index.html文件
}
# url 匹配 ip/mall
location /mall/{
alias /opt/mall/dist/;
index index.html index.html;
}
}
学会看日志排查问题
nginx 的日志在 cat /var/log/nginx/access.log
/var/log/nginx/error.log
以下是我遇到配置mall项目时候遇到 403 的问题,
说明大概率是nginx 用户没有权限,
需要改变文件夹的权限 chmod 755 path
https://www.jianshu.com/p/78e5e233bc81
alias 与 root的区别
https://www.jianshu.com/p/a16936455018
, alias 与 root 的区别