环境说明:我的系统是Ubuntu 18.04 64位,CPU&内存是1核2 GiB
1、下载 node
源文件,我这里安装的版本是 v16.13.2
。终端ssh
连接上自己的服务器,执行下面的命令:
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
2、安装node.js
和淘宝镜像
sudo apt-get install -y nodejs
# 查看node版本
node -v # v16.13.2
# 查看 npm 版本
npm -v # 8.1.2
# 安装cnpm淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
3、安装 NGINX
sudo apt-get install nginx
# 安装完成,查看 nginx 版本
nginx -v # nginx version: nginx/1.14.0 (Ubuntu)
4、安装MySQL
客户端,配置密码步骤省略,自行完成
apt-get install mysql-server mysql-client
我这里的 MySQL 安装的版本是5.7
1、由于我的域名和服务器都是阿里云的,登入阿里云,找到网络与安全–安全组–配置规则–手动添加,
填写端口范围为3000/3000
,授权对象为0.0.0.0/0
2、解析域名,此操作自行完成。
1、先将本地数据库导出sql
文件保存至桌面,数据库名先用xxx_development
2、修改服务器上项目的数据库配置文件config.json
,配置数据库的账号密码
{
"development": {
"username": "你的数据库账号",
"password": "你的数据库密码",
"database": "xxx_development",
"host": "127.0.0.1",
"dialect": "mysql",
"timezone": "+08:00"
},
"test": {
"username": "root",
"password": null,
"database": "database_test",
"host": "127.0.0.1",
"dialect": "mysql",
"timezone": "+08:00"
},
"production": {
"username": "你的数据库账号",
"password": "你的数据库密码",
"database": "xxx_development",
"host": "127.0.0.1",
"dialect": "mysql",
"timezone": "+08:00"
}
}
1、本地开发好的接口项目除去node_modules
文件夹,其余文件全部打包Zip
格式,
通过ftp
软件上传至项目目录,我这里存放项目目录的文件夹是/var/www
。
2、进入/var/www
执行下面的命令进行解压
unzip xxx.zip # xxx代表项目名称
注意:上传时不要忘记了
.env
文件
3、进入项目目录,安装依赖
cd /var/www/xxx
cnpm i
4、测试接口访问
服务器上 `cd` 到项目目录,执行 `npm start`
打开`Google`浏览器,访问`http://ip.xxx.xxx.xx:3000`
确认能访问到数据即可,然后停止npm start
服务。
pm2
是一个进程管理工具,可以用它来管理你的node
进程,并查看node
进程的状态,当然也支持性能监控,进程守护,负载均衡等功能。
pm2
需要全局安装
cnpm i -g pm2
# 使用 `pm2` 启动
pm2 start ./bin/www
# `pm2`常用命令
pm2 status # 查看状态
pm2 stop ./bin/www # 停止服务
pm2 restart ./bin/www # 重启服务
尝试重新访问接口是否正常。
1、创建配置文件
# 进入项目目录
cd /var/www/xxx
# 生成配置文件
pm2 ecosystem # 执行完成,会在项目根目录中生成`ecosystem.config.js`文件
# 接着添加如下代码
module.exports = {
apps : [{
name: "xxx", # xxx是项目名称,可自行修改
script: "./bin/www",
env: {
NODE_ENV: "development",
},
env_production: {
NODE_ENV: "production",
}
}]
}
2、启动配置,以上步骤完成后,通过执行下面的命令启动配置
pm2 start ecosystem.config.js --env production
将项目代码中的数据库和客户端中的数据库都改名为xxx_production
。
1、创建配置文件
cd /etc/nginx/sites-available
cp default xxx
vim xxx
# 修改配置如下(http)
server
{
listen 80;
server_name xxx.xxx.com; # 解析的域名
location / {
proxy_pass http://127.0.0.1:3000; # 配置反向代理
}
}
# 修改配置如下(https),记得要上传自己的证书
server {
listen 80;
server_name xxx.xxx.com;
return 301 https://xxx.xxx.com$request_uri;
}
server{
listen 443 ssl;
server_name xxx.xxx.com;
ssl_certificate /opt/nginx/xxx.xxx.com.pem;
ssl_certificate_key /root/certs/xxx.xxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /{
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
2、使配置文件生效
ln -s /etc/nginx/sites-available/xxx /etc/nginx/sites-enabled/xxx
# 检查 nginx
nginx -t
# 重启 nginx
service nginx restart
pm2
有几个命令
pm2 status
# xxx是服务名,服务名在pm2 status里能看到
pm2 start xxx
pm2 stop xxx
pm2 restart xxx