因爲服務器是沒有桌面的,因此全程都是使用終端進行操做,我選擇的是linux 二進制文件(x64) 的下載地址
複製代碼
# 打開終端 進入遠程服務器
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 install -g cnpm --registry=https://registry.npm.taobao.org
複製代碼
# 終端
# 安裝
yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
複製代碼
y # 回車
複製代碼
# 終端
# 檢查一下有沒有安裝成功, 若是沒報錯就表示已經安裝成功了
git help -a
複製代碼
# 終端
# 卸載
yum remove git
複製代碼
GIT 官網node
# 什麼是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服務的步驟,歡迎大神指導 ^_^
複製代碼