操作系统:阿里云 Ubantu 16.04
1、服务器
1.1 连接服务器
新创建的实例需先重置实例密码并重启实例
ssh root@39.96.114.57
1.2 创建用户并赋予权限
-a添加用户到组-d从组删除用户
adduser juejin
gpasswd -a juejin sudo
1.3 添加sudo权限
Linux用户配置sudo权限(visudo),如果你用visudo来编辑这个文件,那么它会帮你自动做很多事情,比如说语法检查,加锁防止别人同时修改这个文件等等
sudo visudo
visudo其实是打开/etc/sudoers
# User privilege specification
juejin ALL=(ALL:ALL) ALL #添加这一行
- "From ALL hosts juejin" 从任何机器登录,都可以应用接下来的规则
- "Run As ALL User",juejin可以以任何用户的身份运行一些命令
- "Run As All Groups" juejin可以以任何用户组的身份运行一些命令
- 前面的规定适用于任何命令
juejin这个用户可以从任何机器登录,以任何用户和用户组的身份运行任何命令。 保存并退出
Ctrl+Xshift+y
1.4 SSH无密码登录
ssh 公钥认证是ssh认证的方式之一。通过公钥认证可实现ssh免密码登陆,git的ssh方式也是通过公钥进行认证的。
1.4.1 本地生成公钥和私钥
ssh-keygen
cd ~/.ssh
ssh-keygen -t rsa -b 4096
-t指定加密方式-b字节数
~/.ssh/id_rsa私钥目录
~/.ssh/id_rsa.pub公钥目录( 可以给别人看)
1.4.2 本地开启ssh代理
解决ssh慢的问题
eval "$(ssh-agent -s)" #开启ssh代理
ssh-add ~/.ssh/id_rsa #把私钥添加到代理里面
1.4.3 服务器配置
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
ssh-keygen -t rsa -b 4096
1.4.4 把本地的公钥上传到服务器授权文件中
vi ~/.ssh/authorized_keys
ssh juejin@47.103.198.148 #即可快速登陆
1.5 增加安全等级
sudo vi /etc/ssh/sshd_config #打开配置
Port 2222 #ssh服务默认会监听22端口,修改为2222。这里安全组规则也需要添加对应的2222端口
AllowUsers juejin
PermitRootLogin yes #是否允许root不能登录
PasswordAuthentication yes #是否允许客户端密码登录,修改为no,只能通过公钥私钥方式登录
sudo service ssh restart #重启ssh服务
ssh -p 2222 juejin@39.96.114.57 #连接
1.6 安装软件
sudo apt-get update #更新软件列表
sudo apt-get install wget curl git #wget curl git用来下载网络资源
1.7 安装node
#wegt或curl方式下载nvm(nvm是node工具,可以管理node版本)
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
或
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
#下载、编译和安装最新的node版本
安装好nvm如遇无法执行Command 'nvm' not found, did you mean:...,可通过source /root/.bashrc使nvm生效
1.8 编写并启动node程序
在home/juejin目录下,
mkdir web
vi server.js
#编写如下代码
const http = require('http')
const server = http.createServer(function(req,res){
res.end('hello')
})
server.listen(8888)
外网可通过阿里云公网ip访问 47.103.198.148。
缺点:关闭终端窗口,服务器就宕了。
如果listen的时候绑定了ip,如:server.listen(8888, 47.103.198.148),外网无法访问
1.9 pm2启动程序
强大的进程管理器,进程异常退出时pm2会尝试重启
npm install pm2 -g #安装pm2
pm2 start server.js --name 'juejin' #修改名称为juejin (需进入目录:/home/juejin/web)
常见pm2方法:
- pm2 start app.js --name 'crawl' #修改名称为crawl
- pm2 list #查看所有应用
- pm2 restart craw #重启应用craw
- pm2 stop craw #停止应用craw
- pm2 delete craw #删除应用craw