node后端项目部署服务器
centos7
centos安装node
- 安装 nvm, 方便 Node.js 多版本管理
yum install -y git
git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
- 设置nvm环境变量,避免每次连接服务器nvm命令失效问题(可先重连服务器,验证是否还存在nvm命令)
mkdir /usr/local/nvm
vim /etc/profile.d/nvm.sh
# 输入
export NVM_DIR=/usr/local/nvm
source ~/.nvm/nvm.sh
# :wq 退出后
source ~/.bash_profile
# 重连服务器,测试nvm命令是否生效
- 安装node,选择需要的版本
nvm install v10.16.3
nvm install v12.18.0
nvm install v14.21.0
nvm install v16.20.0
nvm use v14.21.0
# 避免重连服务器default版本丢失,(可先重连服务器,验证`node -v`是否有效,再设置)
nvm alias default v14.21.0
centos安装nginx
参考 https://cloud.tencent.com/document/product/213/38056
- 下载
vi /etc/yum.repos.d/nginx.repo
# 写入
[nginx]
name = nginx repo
baseurl = https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck = 0
enabled = 1
:wq 保存
- 安装
yum install -y nginx
systemctl start nginx
systemctl enable nginx # 自启动
cd这些目录检查,可记录下来备用(目录不同存在,需自行查找安装在哪里)
/usr/share/nginx/html
/etc/nginx/conf.d/
- 配置(可先跳过)
- 编辑conf
当前安装新版本,配置剥离但单独文件,不在nginx.conf文件中配置,
可在目录 /etc/nginx/conf.d/ 下,编辑default.conf,或者cp复制一个再编辑,
如 /etc/nginx/conf.d/demos.conf - 配置ssl证书,
腾讯云服务器,对应证书管理 https://console.cloud.tencent.com/ssl
域名没添加dns解析和备案, 配localhost + 公网ip访问,这里子域名demos.ackuikui.com也解析到该服务器,所以用的域名
server_name ackuikui.com;
ssl_certificate ./ssl/ackuikui.com_bundle.crt;
ssl_certificate_key ./ssl/ackuikui.com.key;
- 检查配置
cd /usr/sbin/
./nginx -t
./nginx -s reload
重启
- 测试nginx 浏览器访问服务器ip:80端口,看一眼是否为nginx默认页
centos安装mysql5.5
- 1G内存带不动高版本mysql
- 为什么没用自带的MariaDB,只是本地服务用的mysql
- 卸载自带的MariaDB
rpm -qa|grep -i maria
yum -y remove maria*
报错:MySQL-server-5.5.59-1.el7.x86_64 conflicts with file from package mariadb-libs-
MariaDB没卸载不能装mysql
报错:error: cannot open Packages database in /var/lib/rpm
删除这种文件__db.001
ls /var/lib/rpm/
rm -f /var/lib/rpm/__db*
报错:The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package
用这个修复rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
如果有高版本mysql不能启动,也可卸载再装低版本
# 参考 https://www.cnblogs.com/ricklz/p/12269102.html
rpm -qa|grep -i mysql
yum remove mysql-community-libs-5.7.44-1.el7.x86_64
# 其他没自动删的,也卸载删除
rpm -e --nodeps mysql57-community-release-el7-10.noarch
find / -name mysql
rm -rf /usr/share/mysql
- 下载安装mysql5.5
wget https://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.5.59-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.5.59-1.el7.x86_64.rpm
rpm -ivh --nodeps MySQL-server-5.5.59-1.el7.x86_64.rpm
rpm -ivh --nodeps MySQL-client-5.5.59-1.el7.x86_64.rpm
service mysql start
service mysql restart
systemctl enable mysql
chkconfig --list|grep mysql
mysql -uroot
set password=password('*****'); # ****为自己要的密码,本地保存下
# 授权, 让本地可远程连接该数据库
grant all privileges on *.* to 'root'@'%' identified by '*****';
flush privileges;
默认自动断开时间调整
mysqld --help --verbose | grep -A 1 'Default options'
# 查看默认配置
vi /etc/my.cnf
# 修改后重启
service mysql restart
[mysqld]
# 10天
wait_timeout=864000
interactive_timeout=864000
mysql查询
show global variables like '%time%' ;
启动node服务
查看端口情况
# vue-project
lsof -i:3000
cd /usr/local/project/node-express
nohup npm start > log.out 2>&1 &
# websocket项目
lsof -i:3332
cd /usr/local/project/im-bd
nohup npm start > log.out 2>&1 &
# text to img,ai项目
lsof -i:3444
cd /usr/local/project/text-ai-serve
nohup node index.js > log.out 2>&1 &
kill 111 # 关闭某pid进程
问题:前端html上传后,无权限访问
chown -R nginx:nginx /usr/share/nginx/html
服务器开放端口
https://cloud.tencent.com/document/product/213/38237
本地证书
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./selfsigned.key -out selfsigned.crt