云服务器部署

268 阅读4分钟

部署服务器的理由:

好处:

  1. 一个你可以完全自由掌握的Linux机器
  2. 一个其他人可以访问的ip
  3. 可以作为你的博客、作品展示、简历展示
  4. 比GitHub访问速度快很多
  5. 香港地区机器,可以作为FQ代理,但是不可以备案
  6. 如果备案,你还可以把你的域名绑定到这台机器

第一步:购买阿里云服务器

步骤:省略

第二部:允许8888端口

加入安全组

  1. 按右图点击加入安全组
  2. 如果没有搜到安全组,就先新建一个
  3. 加入之后,点击安全组配置
  4. 点击配置规则
  5. 点击添加安全组规则
  6. 端口填写8888/8888(任意改,也可以填写8880/8889)
    ->注意此时如果没有备案有些端口是用不了的
  7. 授权对象填写0.0.0.0/0表示任何人都可以访问
  8. 点击确定,并输入手机验证码

这时候你就可以通过http://实例ip:8888访问啦

使用服务器

步骤:

重置实列密码

填写新的密码两次和手机验证码

新的密码需要大小写和数字

推荐写法:女朋友名字+你的名字+相识年分

实列状态=>重启实列

重启完了之后点击远程连接

把远程连接密码复制下来,设置为666666

在实例上面新建标签,键值key为666666

再次点击远程连接,输入连接密码

login:后面输入root

password:后面输入密码,输入的时候没有反应正常

本地连接云服务器

获取本地公钥:

cat ~/.ssh/id_rsa.pub

~ 表示代码主目录,也就是当前登录用户的用户目录

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCYXTmRMh6561O60lcw/4hyGi4P6VtFAq0YOu+udDa5vfeikzzi9p5klocBZvAC6ghWBH7bxt1mWurNDoreZSO1Q+vtyLoKUAfFixkvqFcZoDN4YqGKpEEez4k8t6DKqikk8uLjESt0F1osLFg5qUmueKuAMe45a1NXivFpuid6Hk+vuLB48Bv8pWoH2e9veGnu/VXDkY0Espl/DdN7A1IkXAXy2NGjdMhuUQ69OKCTcyPPo+ZBuvNL79nltPU19YIbV9/mNS8K34q/O2No/rvXH6sLSR0mwEUIy4JdlyyRMJf9GhBuysJUx2zEwxiHF7O7rE6DJD8iLN+QIrKr9VBWmrFAr7RCoPu+92ylSO5L3L51o1qp6Vw00Hqh+eGmP8GRM+dog+v7Nqbn+jmJbg/D+dGee6sp6WW0IhuziuRNcM3/HroWDIrfMHOJMoUP1jMrayNu0QtNQqsShatbXz/Gy4W8mPIk5MjQjmP/qjNb74py3atSp00ZpsG0XWY44bZLMQ8fLaTJhmtwnbPfCVdAOgpUQmDD0R5bTi8+/xyCukXcqnklfpf7wI64uRck3DS9rud6hhRT2T40EV3nnkdRSR/ObEM7CsnASKZeWSrIOZYip+7Ju52QLGWzLBiANp+qg4oKMOUQaXoHDi9AAPbZ31qvpBMMu7F0SIhEaXIiDw== xyx1530966653@163.com

然后把公钥复制到编辑器:

echo'复制本地~/.ssh/id_rsa.pub的内容'>>~/.ssh/authorized_keys

将内容复制到远程服务器

ssh root@远程服务器的ip

**总结:
**把本地的公钥复制到阿里云的~/.ssh/authorized_keys

在本地ssh root@实例 ip来远程操作云机器

以后都用ssh root@实例ip 的方式即可

可以通过hosts里给实列ip取个别名

想要退出云机器,可以输入exit回车

如果卡啦,可以直接退出终端ctrl + W

如何防止ssh卡住

在/etc/ssh/ssh_config最后加下面两句话

Host *
  ServerAliveInterval 30

用code打开这个文件应该会失败

可以用两次echo

echo "Host *" >> /etc/ssh/ssh_config
echo " ServerAliveInterval 30" >> /etc/ssh/ssh_config

创建应用账户:

为什么?

Linux的root账户拥有最高权限,一旦被攻克凉凉~

步骤:

adduser xyx
Enter new UNIX password:输入密码
再次输入密码:
......一直回车

结束后输入下面的命令:

mkdir /home/xyx/.ssh
cp ~/.shh/authorized_keys/home/xyx/.ssh
chmod 755 /home/xyx/.ssh/authorized_keys
chown xyx:xyx /home/frank/.ssh/authorized_keys

现在可以使用 ssh xyx@实列ip就可以使用啦

\

sudo

给frank添加sudo权限

在root用户中添加:

adduser xyx sudo

sudo是什么?

全称为super user so

类似于Windows的以管理员身份运行

平时应该多用xyx账户

sudo!! :的意思是用sudo执行上一句命令

ctrl+A :可以快速回到命令前面

安装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
node -v
npm -v
npx -v

sudo apt install git

安装git

sudo apt install git

部署

git clone https://github.com/FrankFang/nodejs-test.git//是http不是ssh
cd nodejs-test
touch log
启动命令:node server.js 8888 > log 2>&1 &
把启动命令做成 start 文件
      touch start
      echo `node server.js 8888 > log 2>&1 &` >> ./start
添加执行权限 chmod +x ./start
运行 sh ./start 得到一个进程号 pid
tail loglog 内容
kill -9 pid 可以关掉进程
killall node 可以关掉所有 node 进程

怎么拉取最新的代码:

git pull
killall node(因为忘了进程号,实际上可以记下来)
./start

如何重启应用:

ssh frank@实例ip
cd nodejs-test
git pull
killall node(因为忘了进程号,实际上可以记下来)
sh ./start

转载自:部署云服务器 - 知乎 (zhihu.com)