部署node代码到阿里云服务器

684 阅读3分钟

背景

自己刚买了阿里云服务器,现在想把node.js代码部署到阿里云服务器上面;我之前写过一篇文章如何购买和登录阿里云服务器,不清楚的同学可以借鉴下哦,juejin.cn/post/684490…

本机登录阿里云服务器

  • 登录网页版阿里云服务器,目前我们使用的是root账户

  • 首先在本机获取公钥,使用命令行:cat ~/.ssh/id_rsa.pub

  • 把公钥复制下来,改成: echo '公钥' >> ~/.ssh/authorized_keys

  • 把以上的内容不知道网页版的阿里云服务器命令行中;

  • 执行完复制的命令后,你就可以在本机上登录阿里云服务器了;
  • 打开本机终端,输入ssh root@公网IP

  • 如果ip地址我们总记不住,我们可以设置本地host,这样我们以后就可以使用自己的命名访问了

  • 如果想要退出云机器,输入exit即可
  • 如何防止ssh卡顿,可在本机器,运行以下代码(注意不是阿里云服务器)
echo "Host *" >> /etc/ssh/ssh_config
echo "  ServerAliveInterval 30" >> /etc/ssh/ssh_config

创建一个新账户

  • 至于为什么要创建一个新账户,因为root权限太高了,如果root账号被控制了,相当于整个机器被控制了,所以我们一般不使用root账户;
  • 先本地使用root登录阿里云服务器,输入‘adduser 用户名’

  • 新建一个.ssh的目录,mkdir /home/dj/.ssh
  • 把服务器的.ssh文件夹下的authorized_keys文件,复制到新创建的.ssh文件夹下面 cp ~/.ssh/authorized_keys /home/dj/.ssh/
  • 把authorized_keys文件权限设置可读可执行 chmod 755 /home/dj/.ssh/authorized_keys
  • 把文件的拥有者设为新用户 chown dj:dj /home/dj/.ssh/authorized_keys
  • 以上设置完成,就可以退出,然后以新用户的名字登录了

给新用户添加sudo权限

  • 我们新用户的权限太小了,有时候会需要root的权限,这时root给新用户加上sudo就可以了,adduser dj sudo

  • 那什么是sudo呢?sudo全称是super user do;类似于windows的以管理员身份运行;平时我们不应该使用root账号,而是使用dj账号,遇到特殊操作,就在前面加sudo,请出root,此时需要输入的密码时dj的密码,不是root的密码;
  • 命令行使用小技巧
  • ctrol + a 可以快速回到命令行前面,
  • sudo !! 使用sudo执行上个命令

在服务器安装Node.js

  • curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
  • sudo sed -i 's/deb.nodesource.com\/node_8.x/mirrors.tuna.tsinghua.edu.cn\/nodesource\/deb_8.x/g' /etc/apt/sources.list.d/nodesource.list
  • sudo apt-get update
  • sudo apt-get install -y nodejs
  • sudo apt install git

部署应用

  • 代码我们是通过git进行拉取代码 git clone XXX.git

  • 使用命令行touch log 创建一个Log文件
  • 运行node程序 node server.js 8888 > log 2>&1 &,这是会返回一个数字,此数字就是进程id,如果我们想要杀死此进程,可以使用kill -9 id

  • 我们可以把启动命令做成一个脚本 echo 'node server.js 8888 > log 2>&1 &' >> ./start

  • 给start一个可执行权限 chmod +x ./start
  • 运行./start执行

在本机浏览器访问服务器代码

  • 因为这个node服务器代码是监听了8888端口,所以我们需要先在阿里云服务器把8888端口加入到安全策略

结束语:

感谢在饥人谷方方老师的无私分享,收益颇多!