在服务器部署nodejs服务、使用pm2进程守护以及nginx代理配置
我是购买的阿里云服务器(Linux系统),所以文章前提是已经有了阿里云服务器
ssh方式登录服务器
登录阿里云,创建密钥对
查看自己电脑的公钥
// 进入目录
cd ~/.ssh
// 查看公钥内容
cat id_rsa.pub
把id_rsa.pub内容放进上图的公钥内容,点击确定即可
创建完密钥对,需要绑定密钥对
选择好实例,点击确定,然后重启一下选择的实例
注意:每台电脑的密钥不一样,所以如果用别的电脑也需要上述配置
此时密钥就配置完成了,在自己电脑打开终端,输入:ssh root@公网ip,即可免密登录了,通过这种方式登录进服务器会默认进入 /root目录
安装node
我是把node安装到 /usr/local 目录下
// 进入目录
cd /usr/local
// 拉取指定版本的node压缩包
wget -c https://npm.taobao.org/mirrors/node/v16.16.0/node-v16.16.0-linux-x64.tar.xz
// 解压压缩包
tar -xvf node-v16.16.0-linux-x64.tar.xz
// 重命名node目录
mv node-v16.16.0-linux-x64 nodejs
// 删除压缩包
rm -rf node-v16.16.0-linux-x64.tar.xz
配置全局环境变量
// 打开配置文件
vim /etc/profile
// 在文件最后追加两行,改成自己的安装目录
export NODEJS_HOME=/usr/local/nodejs
export PATH=${NODEJS_HOME}/bin:$PATH
// 保存配置
shift + ; 输入wq保存
这时候就可以全局使用node&npm了
部署代码
这里代码使用的git方式拉取,但如果只是想把一个文件上传到服务器可以使用winSPC工具上传文件
创建代码目录
mkdir /data/apps/
使用git
// 安装git
yum install git
// 生成密钥
ssh-keygen
// 在github添加密钥后就可以拉取代码了
拉取代码&运行项目
// 进入代码目录
cd /data/apps
// 拉取代码
git clone ******node-api
// 运行node服务
cd node-api
pnpm install
// 这里的运行命令是跟项目保持一致的,实际场景修改成自己的运行命令即可
pnpm build
pnpm start:prod
使用pm2进程守护
使用 pm2
// 安装 pm2
npm install -g pm2
// pm2 启动服务
pm2 start dist/main.js
nginx代理
这时候访问你的node服务接口需要使用:域名/公网IP + 端口号 + 接口路由,这个端口号还是不要暴露的好,所以添加一层代理
查看nginx配置文件目录
nginx -t
在配置文件中写入下面配置:
// 我是在/etc/nginx/default.d文件夹里面新增 api.conf 文件
// 端口号改成自己服务的端口号
location /api {
proxy_pass http://127.0.0.1:3000;
}
重启 nginx
service nginx reload
此时访问服务接口:公网IP + api/接口路由 即可
掘金,记录code生活