如果对nodejskoa2vuejs感兴趣,欢迎加Q群:732189938或直接点链接加入群聊【Node.js/Koa2/vuejs】:https://jq.qq.com/?_wv=1027&k...准备新的ubuntu,请执行以下命令安装常用工具sudoapt-getinstallgitvimwgetcurlopensslbuild-essentiallibssh-dev1.安装nodejscurl-sLhttps://deb.nodesource.com/setup_8.x|sudo-Ebash-sudoapt-getinstall-ynodejs2.安装pm2npm安装pm2-g3。安装nginx如果服务器已经安装了apache,需要先卸载,因为apache占用80端口,会导致nginx无法启动。依次执行以下命令sudoserviceapache2stopupdate-rc.d-fapache2removesudoapt-getremoveapache2updatepackagelistsudoapt-getupdateinstallsudoapt-getinstallnginx4。nginx添加虚拟机配置cd/etc/nginx/conf.d创建绑定域名的虚拟机配置文件,例如:你绑定的域名是fuck.baidu.net,项目所在的节点端口是6661vifuck-baidu-net-6661.conf将以下配置内容粘贴进去,根据实际情况修改服务器{listen80;听[::]:80;server_namebaidu.com;root/var/www/baidu.com/;#记录access_log/var/log/nginx/baidu.com.access.log;error_log/var/log/nginx/baidu.com.error.log警告;#反转e代理位置/{proxy_passhttp://127.0.0.1:3000;}}重启前可以先查看配置规则。sudonginx-t执行上面的命令。如果出现如下提示sudo:unabletoresolvehostXXX,执行vi/etc/hosts修改127.0.1.1hostname为127.0.1.1XXXRestartnginxsudonginx-sreload5.安装mongoDB官网安装说明https://docs.mongodb.com/manu...按照安装说明完成第一步,更换第一将第二步的安装源更换为阿里云的镜像会更快安装,如下:echo"deb[arch=amd64,arm64]https://repo.mongodb.org/apt/ubuntuxenial/mongodb-org/4.0multiverse"|sudotee/etc/apt/sources.list.d/mongodb-org-4.0.list将以上部分替换为以下内容echo"deb[arch=amd64,arm64]https://mirrors.aliyun.com/mongodb/apt/ubuntuxenial/mongodb-org/4.0multiverse”|sudotee/etc/apt/sources.list.d/mongodb-org-4.0.list更新源sudoapt-getupdate官方安装sudoapt-getinstall-ymongodb-org常用命令sudoservicemongodstartsudoservicemongodstopsudo服务mongodrestart6。本地和服务器使用ssh公钥免密访问git仓库在使用SSH协议访问项目仓库之前,需要配置账号/项目的SSH公钥。本地和服务器都执行。您可以根据以下命令生成sshkey:这一步请小心。如果您已经生成并正在使用密钥,请不要再次执行此步骤,否则之前生成的密钥将被覆盖,您将需要使用它。无法访问此密钥。ssh-keygen-trsa-C"xxxxx@xxxxx.com"按照提示回车三次生成sshkey。通过查看~/.ssh/id_rsa.pub文件内容获取你的公钥cat~/.ssh/id_rsa.pub复制sshkey添加到git仓库。码云官方说明在这里https://gitee.com/help/articl...测试是否成功githubssh-Tgit@github.com码云ssh-Tgit@gitee.com7.如果你用的是那个-key自动部署pm2访问本地环境的服务器,需要先安装本地生成的sshkey添加到服务器,只有在本地服务器上才能使用pm2的一键自动部署连接到服务器没有秘密。执行以下命令将ssh公钥添加到服务器。A服务器使用密码登录时,ssh-copy-idusername@ip-address按照提示输入服务器密码。完成后,会出现以下提示:Numberofkey(s)added:1Nowtryloginintothemachine,with:"ssh'root@114.xxx.xxx.xx'"检查确保只有密钥(s)你想要的已添加。使用如下命令测试是否可以连接服务器成功ssh'root@114.xxx.xxx.xx'B当服务器使用密钥对登录连接时(如阿里云服务器可以设置密钥对创建实例时连接,阿里云会自动生成一个key文件下载下来给你保存。)首先创建一个sshagent,执行如下命令eval$(ssh-agent-s)转换为阿里云添加下载的key文件,把下面key文件的路径改成自己的ssh-add~/.ssh/aliyun-ssh-key.pem这样本地终端就可以免密码登录服务器了8.使用pm2一键deploymentusingcommandslocally(本地执行)首先执行pm2init生成一个ecosystem.config.js模板,并配置相关参数在本地终端执行以下命令进行首次部署,填写远程路径pm2deployproductionsetup每次本地git提交代码时在本地终端执行如下名称自动拉取git仓库中的代码并部署pm2deployproduction9。设置当前pm2进程自动启动(服务器端执行)pm2startuppm2save10。启用S??SL证书(Let'sEncryptcertificate)不得不说Let'sEncrypt证书太方便了,几条命令自动完成,无需手动修改配置依次执行以下命令(其他操作请系统查看官方使用方法https://certbot.eff.org/lets-...sudoapt-getupdatesudoapt-getinstallsoftware-properties-commonsudoadd-apt-repositoryppa:certbot/certbotsudoapt-getupdatesudoapt-getinstallpython-certbot-nginxinstallsudocertbot--nginx执行以上命令后,会提示输入邮箱地址,会检测到nginx配置的域名,选择你的域名想要生成证书序列号就够了;用户使用http访问时也会提示是否自动跳转到https访问,序号1不跳转,序号2自动跳转。推荐选择2,每张生成的证书有效期为90天。到期后需要重新申请。如果你想在证书过期前自动续费,可以执行sudocertbotrenew--dry-run这样certbot会在证书过期时自动为你续费,相当于你拥有了pm2的永久免费SSL证书常用命令$pm2list#显示所有进程状态$pm2monit#监控所有进程$pm2logs#显示所有进程日志$pm2stopall#停止所有进程$pm2restartall#重启所有进程$pm2reloadall#0秒到停止重新加载进程(对于NETWORKED进程)$pm2stop0#停止指定进程$pm2restart0#重启指定进程$pm2startup#生成init脚本以保持进程存活$pm2web#runrobustof计算机API端点(http://localhost:9615)$pm2delete0#杀死指定进程$pm2deleteall#杀死所有进程
