服务器

# 服务器

# 服务器相关

# 查看当前ip

curl cip.cc
1

# 配置nginx代理

  • 配置nginx代理时,反向代理一定要放在nginx配置的最前面
// 错误 ---- 接口会报404错误
server {
      location /node-fe {
            alias /html/website/node-fe-demo;
            index index.html index.htm;
      }

      location ^~ /api/ {
            proxy_pass http://124.222.190.75:19880/;
      }
}


// 正确
server {
      location ^~ /api/ {
            proxy_pass http://124.222.190.75:19880/;
      }

      location /node-fe {
            alias /html/website/node-fe-demo;
            index index.html index.htm;
      }
}




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 项目目录存放位置

# cd /html/website  存放的静态html资源
1

# 新建一个静态资源服务器

// 1. 将文件放置到 /home/web/下面

// 2.配置nginx代理

# 3. nginx -s reload   重新加载配置

// 4.在腾讯云上开启此端口  服务器 -> 防火墙 -> 添加规则

# 应用类型  自定义
# 限制来源 不启用 默认就是所有人都可以访问
# 协议  TCP
# 端口   配置的端口
# 策略   允许


# 5.访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 服务器自身防火墙

// 查看防火墙状态not running表示未开启,不需要额外暴漏端口。
# firewall-cmd --state
// 如果防火墙状态开启,开启nginx监听的端口
# firewall-cmd --query-port=996/tcp
1
2
3
4

# mysql 新建数据库


# 字符集选择      utf8mb4
# 排序规则        utf8mb4_0900_ai_ci
1
2
3

# mysql 报错解决方案

  • 报错信息
D:\projects\nodejs\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\Parser.js:437
      throw err; // Rethrow non-MySQL errors
      ^
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
flush privileges;
1
2
3
4
5
  • 解决方案
// 1.执行语句
mysql> alter user 'root'@'%' identified with mysql_native_password by '密码';
// Query OK, 0 rows affected (0.43 sec)

// 2.再执行语句
mysql> flush privileges;
// Query OK, 0 rows affected (0.43 sec)

//3.成功后 退出
mysql> quit
// Bye


// nodejs环境重启下即可 npm run dev
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# liunx 下载node

不能下版本太高的node,启动不起来,会报以下错误,建议走 14以下

node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
1
2
3
4
5
6
wget https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-x64.tar.gz
1
  • 解压
tar -xvf node-v12.18.4-linux-x64.tar.gz
1
  • cd 到这个目录下(这个很重要)
cd  nodev12.18.4/bin
1
  • 加入全局环境/软链接
ln -s /app/nodejs/nodev12.18.4/bin/node /usr/local/bin/node
ln -s /app/nodejs/nodev12.18.4/bin/npm /usr/local/bin/npm
ln -s /app/nodejs/nodev12.18.4/bin/npx /usr/local/bin/npx
1
2
3
  • 如果要删除软链接
rm -rf /usr/local/bin/node
1

# node 上使用pm2部署服务

  • 先全局安装pm2
npm install -g pm2
1
  • 挂载全局
ln -s /app/nodejs/nodev12.18.4/lib/node_modules/pm2/bin/pm2  /usr/local/bin
1

# 启动

# pm2 start bin/www --time          # 输出的日志加时间
# pm2 start bin/www --name my-api   #my-api为PM2进程名称
# pm2 start bin/www -i 0           #根据CPU核数启动进程个数
# pm2 start bin/www --watch   #实时监控bin/www的方式启动,当bin/www文件有变动时,pm2会自动reload
1
2
3
4

# 查看进程

# pm2 list
# pm2 show 0 或者 # pm2 info 0  #查看进程详细信息,0为PM2进程id
1
2

# 监控

# pm2 monit
1

# 停止

# pm2 stop all  #停止PM2列表中所有的进程
# pm2 stop 0    #停止PM2列表中进程为0的进程
1
2

# 重载

# pm2 reload all    #重载PM2列表中所有的进程
# pm2 reload 0     #重载PM2列表中进程为0的进程
1
2

# 重启

# pm2 restart all     #重启PM2列表中所有的进程
# pm2 restart 0      #重启PM2列表中进程为0的进程
1
2

# 删除 pm2 进程

# pm2 delete 0     #删除PM2列表中进程为0的进程
# pm2 delete all   #删除PM2列表中所有的进程
1
2

# 日志操作

# pm2 logs [--raw]   #Display all processes logs in streaming
# pm2 flush              #Empty all log file
# pm2 reloadLogs    #Reload all logs
1
2
3

# 升级pm2

# npm install pm2@lastest -g   #安装最新的PM2版本
# pm2 updatePM2                    #升级pm2
1
2

# 使用pm2 日志系统

  • pm2 的日志 默认路径 /root/.pm2/logs

pm2 instal pm2-logrotate
pm2 set pm2-logrotate:rotateInterval '*/60 * * * *'
pm2 set pm2-logrotate:compress true    //压缩
pm2 set pm2-logrotate:retain 12  //备份最多12份,也就是备份最近12小时的日志

# 默认日志文件路径
/home/.pm2/logs
1
2
3
4
5
6
7
8
最后更新时间: 2022/9/4 14:31:23