服务器部署1

操做系统:阿里云 Ubantu 16.04node

一、服务器

1.1 链接服务器

新建立的实例需先重置实例密码并重启实例git

ssh root@39.96.114.57
复制代码

1.2 建立用户并赋予权限

  • -a 添加用户到组
  • -d 从组删除用户
adduser juejin
gpasswd -a juejin sudo 
复制代码

1.3 添加sudo权限

Linux用户配置sudo权限(visudo),若是你用visudo来编辑这个文件,那么它会帮你自动作不少事情,好比说语法检查,加锁防止别人同时修改这个文件等等github

sudo visudo
复制代码

visudo实际上是打开/etc/sudoersweb

# User privilege specification
juejin  ALL=(ALL:ALL) ALL  #添加这一行
复制代码
  • "From ALL hosts juejin" 从任何机器登陆,均可以应用接下来的规则
  • "Run As ALL User",juejin能够以任何用户的身份运行一些命令
  • "Run As All Groups" juejin能够以任何用户组的身份运行一些命令
  • 前面的规定适用于任何命令

juejin这个用户能够从任何机器登陆,以任何用户和用户组的身份运行任何命令。 保存并退出 Ctrl+X shift+ynpm

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 公钥目录( 能够给别人看)bash

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

git地址下载最新版本网络

#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生效app

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
相关文章
相关标签/搜索