服務器部署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
相關文章
相關標籤/搜索