如何使用pm2将项目快速部署到远程服务器
使用背景
当我们需要将项目部署到远程在线服务器时;传统的方法可能是:
通过ssh、ftp等方式将本地代码上传到服务器。然后通过ssh登录服务器,配置环境;手动启动应用程序。手动太多,操作起来麻烦又麻烦。
现代自动化部署
环境:本地(MAC);远程服务器
使用工具:Git、pm2、node;
需要知道的概念:ssh密钥登录;Github添加部署密钥
1.服务器环境部署
基本工具安装:git、pm2、node
2.ssh服务器的安全登录
服务器生成一个密钥对
ssh-keygen-t rsa-C '[电子邮件保护]'-t指定密钥类型,默认情况下是RSA。您可以省略-c来设置注释文本,例如可以省略的邮箱。因为使用了百度云服务器,可以直接通过接口生成密钥对,然后作为xxx.txt文件下载到本地。
。此时,您可以使用ssh -i xxx.txt[下载的公钥路径] [emailprotected]
错误报告:
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 3360 UNPROTECTED PRIVATE KEY FILE!“@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @对“server-key.txt”的权限0644太大。要求您的私钥文件不能被其他人访问。该私钥将被忽略。加载密钥“server-key . txt”:错误权限
大概的意思是私钥文件不能被其他人访问。可以认为,如果被他人获得,可能会影响服务器的安全性,因此需要重置密钥文件的权限
重置密钥文件的权限:chmod 600 server-key.txt,取消其他用户的读取权限
但是使用ssh [emailprotected]仍然不能直接登录;追溯原因,发现密钥对不是直接在本地生成的;
因此,有必要使用ssh-add -K ~/。ssh/xxx.txt【下载公钥文件】(-K代表永久存储,如果用户每次开机后不需要再次ssh-add),就像本地生成密钥对后部署到服务器时需要将密钥追加到ssh认证文件的原因一样;
Ssh [emailprotected]可以无密码正常登录!(配置这种登录方式后,pm2需要使用)
配置快速登录(附加)
1.进入ssh目录:cd ~/。嘘
2.创建配置文件:触摸配置
3.输入配置配置文件配置:vi配置
Host lwh #快捷别名HostName主机#ssh服务器ip或domainPort端口#ssh服务器端口,默认为22User root #ssh服务器用户名identityfile ~/。ssh/server-key.txt #下载的私钥文件4。wq!保存退出
5.完成后,可以直接使用:ssh lwh登录
在Github上添加部署密钥
服务器生成密钥
#生成ssh密钥sh-keygen -t rsa#查看公钥内容cat ~/。ssh/id_rsa.pub复制密钥内容,并将其添加到Github上相应项目仓库设置下的Deploy密钥中
配置Deploy键,以便服务器可以通过ssh拉取项目仓库;
配置pm2
配置生态系统。配置。js;具体pm2配置和基本使用介绍,戳~用pm2配置生产环境
模块。导出={ apps : [{ name : ' back-Api ',//应用名脚本: ' ./server/start.js ',//应用文件位置en v : {//PM2 _发球_路径: '。/apidoc ',//静态服务路径PM2 _发球_端口: 8080,//静态服务器访问端口' NODE_ENV: '开发'//启动默认模式},env _ production : { PM2 _发球_端口: 8080,NODE_ENV: '生产'//使用生产模式PM2开始经济学。配置。js-env production },instances: ' max ',//将应用程序分布在所有中央处理器核心上,可以是整数或负数instance_var: 'INSTANCE_ID ',exec_mode: 'cluster ',min_uptime: '30s ',max _ restarts: 10,//cron_restart: '40 ',watch:[ 'server ',],//监听模式,不能单纯的设置为没错,易导致无限重启,因为日志文件在变化,需要排除对其的监听merge_logs: true,//集群情况下,可以合并日志} ],部署: {生产: { //配置没法提供密码,所以前面需要配置嘘免密码登录服务器user: 'root ',//ssh登陆服务器用户名host: '100.12.102.198 ',//ssh地址服务器域/IP ref: '源/主,//Git远程/分支repo: '[emailprotected]',//git地址使用嘘地址路径: /李文辉/www ',//项目存放服务器文件路径部署后: 'npm安装pm2重装生态系统。config.js - env production' //部署后的动作} }};开始部署
pm2部署生态系统。config.js生产报错
苹果dembp :后台服务器应用编程接口苹果$ PM2部署经济学。配置。js生产-部署到生产环境-在主机106.12.132.188上部署源/主执行预部署-本地挂钩预部署bash:第0 行: CD :/lwh/www/source :没有那个文件或目录获取更新完整fetchbash:第0 行: CD :/lwh/www/source :没有那个文件或目录
提取失败
部署失败一
需要先初始化服务器应用:pm2部署生态系统。config.js生产设置,
然后:pm2部署生态系统。config.js生产
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
版权声明:如何使用pm2将项目快速部署到远程服务器是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。