基於exporess搭建node服務及部署

服務器篇

因爲服務器是沒有桌面的,因此全程都是使用終端進行操做,我選擇的是linux 二進制文件(x64) 的下載地址
複製代碼

node 安裝

# 打開終端 進入遠程服務器 
ssh root@000.000.000.0
# 000.000.000.0 是指服務器的公網 IP
複製代碼

若是你不知道服務器的初始密碼,你能夠選擇重置密碼,重置密碼後須要重啓纔會生效。
複製代碼
# 終端

# 進入根目錄
cd /
# wget 是linux 系統下載命令 後面跟着地址連接
wget https://npm.taobao.org/mirrors/node/v14.5.0/node-v14.5.0-linux-x64.tar.xz

複製代碼
# 終端

# 100% 表示文件已經下載完成,咱們下載的是壓縮文件,因此咱們先解壓
複製代碼

# 終端

# 解壓
tar -xvf node-v14.5.0-linux-x64.tar.xz
# 這個時候咱們能夠看目錄結構
ls
複製代碼

node 官網html

node 已經安裝完成接下來是環境變量配置
複製代碼

環境變量配置

# 終端

# 仍是在根目錄下打開配置文件,個人配置文件是空白的,處於預覽狀態暫時還不能編輯
vim .bash_profile
複製代碼

# 終端

i # 進入編輯狀態新增環境變量

export NODE_HOME=/node-v14.4.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

複製代碼

# 終端

# 取消編輯狀態 按 ESC 取消鍵
# :wq 保存退出 :q 僅退出
:wq 
複製代碼

# 終端

# 提交一下修改的文件纔會生效
source .bash_profile

# 最後檢查一下node 有沒有安裝成功
node -v 

# 別忘了把以前的壓縮刪除
rm -rf node-v14.5.0-linux-x64.tar.xz
複製代碼

特別提醒 前端

發如今根目錄配置 .bash_profile 文件每次進入服務器 node 都失效,須要再次source .bash_profile 纔會生效。

# 解決方案
將環境變量寫入.bashrc文件中(系統級配置文件),先將咱們以前配置根目錄配置文件內容刪除

# 打開.bashrc 
vim ~/.bashrc

# 保存退出
:wq

#提交.bashrc
source .bashrc
複製代碼

淘寶 NPM 鏡像

# 終端

npm install -g cnpm --registry=https://registry.npm.taobao.org

複製代碼

git 安裝

# 終端

# 安裝
yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel
  
複製代碼

y  # 回車
複製代碼

# 終端

# 檢查一下有沒有安裝成功, 若是沒報錯就表示已經安裝成功了
git help -a

複製代碼
# 終端

# 卸載
yum remove git
複製代碼

GIT 官網node

PM2 安裝

# 什麼是PM2 
PM2是一個帶有負載均衡功能的 Node 應用進程管理器,咱們稱之爲進程守衛

# 這個安裝就比較容易了使用npm安裝就能夠了
npm install pm2 -g
複製代碼

PM2 官網linux

項目部署

基本環境已經安裝完成,接下來就是項目部署git

# 終端

# 新建文本夾
mkdir frame_sweet

# 進入
cd frame_sweet

# 初始化
npm init -y

# 安裝依賴
cnpm install express -S

# 建立一個靜態文件俠
mkdir views

# 建立一個html 文件
touch index.html

# 這個文件隨便寫點什麼
....

# 建立主要程序及路由文件
touch app.js router.js

# app.js

const express = require('express')
const router = require('./router')
const path = require('path')
const app = express()

# 掛載靜態文件,個人網頁暫時放在 views 文件夾裏面的
app.use('/', express.static(path.join(__dirname, './views')))

app.use(router)
app.listen(3002)

# router.js

const express = require('express')
const router = express.Router()
router.get('/', (req, res) => {
  res.render('index.html')
})
module.exports = router

複製代碼
將項目存儲到github 或 碼雲,方便服務器拿到

我在服務器的根目錄新建了static 文件夾放置項目

複製代碼
# 終端

cd static 

# 把項目克隆下來 git clone

cd demo
npm install

# 在服務器端先運行看看
node app.js

# 經過外網IP 加上端口訪問項目看有沒有被訪問到
# 訪問失敗的大概的緣由在,沒有設置安全組,須要在阿里雲控制檯設置安全組
# 你訪問服務器,因此配置的是入方向 
複製代碼

重啓 node 服務

到了這一步若是能經過IP:prot訪問成功,node服務部署基本上告一段落了
咱們使用的是ssh 操做服務器,啓動node 項目,若是關閉了ssh那麼node 服務就掛掉了,因此咱們如今要使用PM2來守護進程,即便你關閉了ssh node 仍然會在後臺運行

# pm2 啓動服務
pm2 start app.js

# 也能夠啓用集羣模式,只需傳遞-i 選項: 
# max表示PM2將自動檢測可用CPU的數量並運行儘量多的進程
pm2 start app.js -i max

# 關閉pm2 進程
pm2 stop name
複製代碼

服務雲防火牆

# 終端

# 查看防火牆狀態
firewall-cmd    --state

# 啓動防火牆
systemctl  start   firewalld.service

# 關閉防火牆
systemctl  stop   firewalld.service

# 重啓防火牆
firewall-cmd --reload
複製代碼

番外篇 -- 服務器及域名購買與解析

服務器購買

本人買的是阿里雲的服務器,操做系統是 CentOS 7.4 64位
複製代碼

域名購買

域名解析

使用的是阿里控制後,購買後須要域名解析及域名備案。

主機記錄就是域名前綴,常見用法有:
www:解析後的域名爲www.mytiw.com。
@:直接解析主域名 mytiw.com。
*:泛解析,匹配其餘全部域名 *.mytiw.com。
mail:將域名解析爲mail.mytiw.com,一般用於解析郵箱服務器。
二級域名:如:abc.mytiw.com,填寫abc。
手機網站:如:m.mytiw.com,填寫m。

記錄值指的是服務器的公網IP

備案這一步我就是不展現了,直接使用阿里的備案就能夠了

複製代碼

到這裏域名已經解析成功了
做爲一個前端記錄第一次部署node服務的步驟,歡迎大神指導 ^_^
複製代碼
相關文章
相關標籤/搜索