部署服务器的理由:
好处:
- 一个你可以完全自由掌握的Linux机器
- 一个其他人可以访问的ip
- 可以作为你的博客、作品展示、简历展示
- 比GitHub访问速度快很多
- 香港地区机器,可以作为FQ代理,但是不可以备案
- 如果备案,你还可以把你的域名绑定到这台机器
第一步:购买阿里云服务器
步骤:省略
第二部:允许8888端口
加入安全组
- 按右图点击加入安全组
- 如果没有搜到安全组,就先新建一个
- 加入之后,点击安全组配置
- 点击配置规则
- 点击添加安全组规则
- 端口填写8888/8888(任意改,也可以填写8880/8889)
->注意此时如果没有备案有些端口是用不了的 - 授权对象填写0.0.0.0/0表示任何人都可以访问
- 点击确定,并输入手机验证码
这时候你就可以通过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 log 看 log 内容
kill -9 pid 可以关掉进程
killall node 可以关掉所有 node 进程
怎么拉取最新的代码:
git pull
killall node(因为忘了进程号,实际上可以记下来)
./start
如何重启应用:
ssh frank@实例ip
cd nodejs-test
git pull
killall node(因为忘了进程号,实际上可以记下来)
sh ./start