手把手教你从0开始部署应用
好处
1.一个你可以完全*掌控的Linux机器
2.一个其它人可以访问的IP
3.可以作为你的博客,作品展示,简历展示
4.比GitHub访问速度快很多
5.香港地区机器,可以作为FQ代理,但是好像不能备案
如果你备案了,你还可以把你的域名绑定到这台机器
代价
1.100人民币可以用1000小时左右。按量付费,即用即停,释放机器,数据会丢!
一.如何购买阿里云服务器
创建我的ECS
(1)选择“按量付费”
(2)地区一般选择 “国内的,有优惠的”
(3)实例分类选择 “共享型”
(4)镜像选择 “Ubuntu 18.04 64位 ”
(5)下一步,带宽调到最低1M
(6)勾选服务协议
(7)创建成功,点击“管理控制台”
运行中则代表开始收费!
添加8888端口
1.第一步
2.点击“配置规则”,点击手动添加,输入目的:8888/8888,输入源:0.0.0.0/0(表示任何人都能访问)
使用服务器
1.回退到实例列表,点击"远程连接"
第一次使用时,把“远程连接密码”记到标签里(没有就不记)
2.重置密码。
点击“过多”->重置实例密码
这是通过网页登陆阿里云服务器,接下来教你如何在本地也能登陆。
本地登陆云服务器
1.本地打印上传GitHub的公钥
终端代码: cat ~/.ssh/id_rsa.pub
复制公钥
2.打开VScode,把key追加到文件里
代码: echo ‘粘贴公钥…’ >> ~/.ssh/authorized_keys
3.把编辑好的代码复制到云服务器运行,回车
4.打开终端运行
ssh root@IP地址(公)
例子: ssh root@8.130.10.66
yes,回车
总结:
把公钥放到阿里云的服务器,就能使用ssh在终端访问服务器了。
现在服务器就可以关掉啦。
终端访问服务器
1.进入账号
代码:ssh root@8.130.10.66
退出云服务系统 代码: exit
卡了直接退出终端 ctrl+w
2.查目前的位置 代码: pwd
回到根目录 代码: cd /
查看所有目录 代码: ls -l
如何防止ssh卡住?
注意:先 exit 阿里云账号,不要在阿里云上运行
在/etc/ssh/ssh_config最后加下面两句话
Host *
ServerAliveInterval 30
用code打开这个文件应该会失败
可以用两次echo搞定
echo "Host *" >> /etc/ssh/ssh_config
echo " ServerAliveInterval 30" >> /etc/ssh/ssh_config
重启终端生效,如果没生效就重启机器
部署 Node.js 代码
一.创建应用账户
为什么?
Linux的root账户拥有最高权限,一旦被攻克…
步骤
1.终端执行
ssh root@8.130.10.66
adduser lixueqin (可创建多个用户)
输入密码:balabala
一直回车回车
2.运行如下命令
mkdir /home/lixueqin/.ssh
cp ~/.ssh/authorized_keys /home/lixueqin/.ssh/ 注释:把root的authorized_keys复制到这里
chmod 755 /home/lixueqin/.ssh/authorized_keys 注释:把key变成可读的
chown lixueqin:lixueqin /home/lixueqin/.ssh/authorized_keys 注释:把key的拥有者变成lixueqin
现在可以退出root了,退出切换账号代码:logout
3.现在ssh lixueqin@实例ip 就可以用了
进入ssh lixueqin@8.130.10.66
4.lixueqin权限比root低,不能随意对root的文件修改,这样更安全!
以后尽量使用lixueqin目录,不要用root目录
sudo
sudo是什么?
全称super user do
类似于Window的「以管理员身份运行」
平时你不应该使用root账号,而是用lixueqin账户
遇到特殊操作,就在前面加sudo,请出root
需要输入lixueqin的密码,而不是root的密码
ctrl+A可以快速回到命令前面
sudo!!的意思是用sudo执行上一句命令
1.给lixueqin添加权限adduser lixueqin sudo
终端命令:
exit
ssh root@8.130.10.66
adduser lixueqin sudo
exit
ssh lixueqin@8.130.10.66
安装软件
有了新的账户后就可以安装一些必要的软件了
1.安装Node.js 14
终端命令:
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt-get update
sudo apt-get install -y nodejs
node -v
npm -v
npx -v
2.安装git
终端命令:
sudo apt install git
回车
git --version
部署应用(代码)
首先下载代码
git clone https://github.com/lixueqin-4119/nodejs-test.git
可以改为你的仓库HTTPS地址,不要使用SSH地址哦
依旧在lixueqin这个账号里下载代码
终端代码:
ssh lixueqin@8.130.10.66
git clone https://github.com/lixueqin-4119/nodejs-test.git
cd nodejs-test
touch log
node server.js 8888 > log 2>&1 & 注释:启动命令,后台在运行
如上图,你会得到一个pid
关掉进程
kill -9 18907
或者关掉所有node进程
二选一,作用是一样的
killall node
运行 sh ./start 得到一个进程号 pid
tail log 看 log 内容
这样就可以在后台运行我们的js并且可以去做其他的事
用node server.js 8888 > log 2>&1 & 代替node server.js 8888
可以把启动命令做成 start 文件
终端代码:
ssh lixueqin@8.130.10.66
touch start
echo 'node server.js 8888 > log 2>&1 &' >> ./start
cat start
chmod +x ./start 注释:添加执行权限
ls -l
./start 注释:执行start
curl http://localhost:8888
killall node
访问
前提: 检查是否有8888端口,然后copy阿里云服务器IP(公)地址
1.进入服务器lixueqin账号
ssh lixueqin@8.130.10.66
2.启动进程
代码:
touch start
echo 'node server.js 8888 > log 2>&1 &' >> ./start
cat start
chmod +x ./start //添加执行权限
ls -l
./start //执行start
curl http://localhost:8888
3.选做 killall node
地址栏输入IP+端口即可访问: 8.130.10.66:8888
全世界都可以通过IP+端口访问你的首页
可以做简历或个人主页,有index.html即可
别人都是用域名,为什么我们用IP+8888?
因为国内需要备案,不备案80端口很有可能被封。
重启应用
改了代码如何再重新启动?
1.修改代码
1’在本地改完代码 git push
2’GitHub上直接修改代码并点击提交
2.ssh lixueqin@8.130.10.66
3.进入远程目录,拉取最新代码
cd nodejs-text 注释:进入目录
git pull
4.关掉进程重新启动
killall node
./start
退出切换账号:logout
退出云服务系统:exit