根據慕課網課程《Nodejs最後一公裡》記的筆記,主要了解項目伺服器部署流程。
1.項目準備
1.購買自己的域名
2.購買自己的伺服器
3.域名備案
4.配置伺服器應用環境(使用者的權限、無密碼的登陸、Nodejs環境、包群組件的安裝、端口的轉發、SSH證書生成和配置、Nginx的安裝和配置、防火牆、資料庫、自動備份的機制等等)
5.安裝配置資料庫(有本地資料庫和雲資料庫)(資料庫涉及到資料庫的角色、資料庫的讀寫權限、自動備份的機制)
6.項目遠端部署分布與更新
2.遠端登陸伺服器
選購域名伺服器及備案 域名商:愛名網、阿裡雲
fdisk -l 檢視磁盤目前分區資訊
df -h 檢視硬碟使用指令
root權限及添加使用者:我們不能一直使用root使用者,不安全,我們可以添加多個使用者,然後為使用者設定權限。
ssh無密碼登陸:本地生成私鑰和公鑰—》本地傳到伺服器的公鑰—》密鑰算法對比—》登陸成功。
檢視本地是否已經配置過ssh:進入系統根目錄,ls -a檢視所有檔案,檢視是否有.ssh檔案,進入之後存在檔案存在的話就是已經配置過了。
配置.ssh的密鑰和公鑰:mkdir .shh,然後進入檔案夾,執行ssh-keygen -t ras -b 4096 -C
"[email protected]",然後回車,設定密碼,就可以了。
開啟.ssh代理:執行 eval “$(ssh-agent -s)”
.ssh可以加入代理之中:執行 ssh-add ~/.ssh/id_rsa
傳輸公鑰到伺服器:伺服器同樣配置.ssh,開啟代理和加入代理之後,然後伺服器設定authorized_keys把本地的公鑰複制到裡面就可以了。
SSH更多可以檢視:
http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html3.增強伺服器安全等級
修改服務修改伺服器的 22 端口,取消密碼登入,增大伺服器的破解難度,配置 IPTables 防火牆規則,通過 Fail2Ban 增強伺服器的防禦動作,提高伺服器的安全系數,對整個線上伺服器進行各種安全防護的增強器的 22 端口,取消密碼登入,增大伺服器的破解難度。
修改伺服器預設登入端口。
配置 iptables 和 Fail2Ban 增強安全防護。
SSH由用戶端和服務端的軟體組成,在用戶端可以使用的軟體有SecureCRT、putty、Xshell等,而在伺服器端運作的是一個sshd的服務,sshd的配置檔案位置在:/etc/ssh/sshd_config,通過使用SSH,可以把所有傳輸的資料進行加密,而且也能夠防止dns和IP欺騙,此外,SSH傳輸的資料是經過壓縮的,可以加快傳輸速度。
修改預設端口:也同樣是在/etc/ssh/sshd_config路徑下進行修改。
ssh_config和sshd_config都是ssh伺服器的配置檔案,二者差別在于,前者是針對用戶端的配置檔案,後者則是針對服務端的配置檔案。
4.搭建Nodejs環境
Ubunbu 伺服器上通過 nvm 安裝及管理 Nodejs 版本,以及 nvm 全局子產品使用中可能遇到的問題解決思路,安裝 PM2 并簡單介紹 PM2 的基本使用和它生産環境中的角色。
借助 pm2 讓 Nodejs 服務常駐。
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sys sysctl -p
- 1
fs.inotify.max_user_watches:表示同一使用者同時可以添加的watch數目(watch一般是針對目錄,決定了同時同一使用者可以監控的目錄數量)。
tee指令會從标準輸入裝置讀取資料,将其内容輸出到标準輸出裝置,同時儲存成檔案。
5.配置 Nginx 實作反向代理
安裝并配置 Nginx 的 upstream,端口的映射轉發給背景的 Nodejs 服務,實作服務的識别和轉發。
配置 Nginx 反向代理 Nodejs 端口。
Linux 系統主要啟動步驟:
1.讀取 MBR 的資訊,啟動 Boot Manager。
2.加載系統核心,啟動 init 程序, init 程序是 Linux 的根程序,所有的系統程序都是它的子程序。
3.init 程序讀取 /etc/inittab 檔案中的資訊,并進入預設的運作級别。通常情況下 /etc/rcS.d/ 目錄下的啟動腳本首先被執行,然後是/etc/rcN.d/ 目錄。
4.根據 /etc/rcS.d/ 檔案夾中對應的腳本啟動 Xwindow 伺服器 xorg,Xwindow 為 Linux 下的圖形使用者界面系統。
5.啟動登入管理器,等待使用者登入。
6.利用 DNSPod 管理域名解析
更改域名的 DNS 根伺服器,為域名指定一個新的解析平台,統一管理;學習不同的解析類型,增加多條解析規則,為不同類型的資源和服務配置 A 記錄和 CNAME。
更改域名的 DNS 根伺服器。
配置解析項目的域名 A 記錄和 CNAME。
7.資料庫配置安裝MongoDB
在 Ubuntu 14.04 上加速安裝 MongoDB 特定版本,學習使用 mongodump mongorestore mongoexport mongoimport 來實作單表單庫導入導出,從線上遠端管理配置 Mongodb 的讀寫和備份權限,實作生産環境下垮伺服器之間的資料遷移流程,結合系統 crontab bash 腳本 mongodump 和備份角色實作定時備份。
在 Ubuntu 14.04 上安裝 MongoDB。
往線上 MongoDB 導入單表資料或資料庫。
為上線項目配置 MongoDB 資料庫讀寫權限。
從一台伺服器遷移資料到另一個線上 MongoDB 中。
為資料庫實作定時備份方案。
上傳資料庫備份到七牛私有雲。
8.向伺服器正式部署和釋出上線Nodejs項目
利用免費 Git 私有倉庫平台管理項目源碼版本,從本地及伺服器的 PM2 來初始化應用的線上目錄,一句指令來實作與伺服器通信實作自動擷取代碼自動重新開機,分别示範 5 個項目的部署上線流程,示範帶資料庫的 API 型應用上線流程及微信背景 URL 配置。…
8.1 上傳項目代碼到線上私有 Git 倉庫
8.2 配置 PM2 一鍵部署線上項目結構
PM2簡介:
PM2是node程序管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如性能監控、自動重新開機、負載均衡等,而且使用非常簡單。
主要特性
- 内建負載均衡(使用 Node cluster 叢集子產品)
- 背景運作
- 0 秒停機重載,我了解大概意思是維護更新的時候不需要停機.
- 具有 Ubuntu 和 CentOS 的啟動腳本
- 停止不穩定的程序(避免無限循環)
- 控制台檢測
- 提供 HTTP API
- 遠端控制和實時的接口 API ( Nodejs 子產品,允許和 PM2 程序管理器互動 )
檢視完整文章:
https://segmentfault.com/a/1190000002539204 https://segmentfault.com/a/1190000002539204 https://segmentfault.com/a/1190000006793571 https://segmentfault.com/a/11900000067935718.3 從本地釋出上線和更新伺服器的 Nodejs 項目
8.4 部署釋出電影網站并連接配接線上 MongoDB
8.5 部署 ReactNative App 線上 API 服務
8.6部署微信小程式線上 API 服務
8.7 部署配置微信公衆号項目背景
9.使用和配置更安全的HTTPS協定
不同的 SSL 證書類型及安全等級,利用免費提供 SSL 的平台申請及伺服器上通過 Nginx 來配置證書驗證子產品,最後總結,我們學習和了解了一個真實的本地 Nodejs 項目,是如何被部署上線的,一台真實的伺服器生産環境是如何被配置起來的,前端和後端的最後一個環節是如何通過域名和伺服器串聯起來的,以及必要的安全事…
9.1 選購申請 SSL 證書的一些建議:
SSL證書根據驗證級别,分為三種類型,即域名型SSL證書,簡稱DVSSL;企業型SSL證書,簡稱OVSSL;增強型SSL證書,簡稱EVSSL。詳細資訊可以參考:
https://blog.csdn.net/m0_37941906/article/details/80679693?utm_source=blogxgwz9 https://blog.csdn.net/m0_37941906/article/details/80679693?utm_source=blogxgwz99.2 雲平台申請免費證書及 Nginx 配置
SSL申請平台:又拍雲、騰訊雲、七牛、阿裡雲
9.3 聊一聊運維安全和應對思路
如果在阿裡雲官方買産品包括:雲伺服器,雲資料庫等, 參考下面這些建站幹貨:
阿裡雲産品2000元代金券領取位址:
阿裡雲雲小站阿裡雲官方最新活動公布位址:
阿裡雲官方最新活動 (實時更新)阿裡雲伺服器執行個體規格組位址:
官方雲伺服器執行個體阿裡雲學習路徑位址:
阿裡雲學習路徑在購買過程中有任何不懂,都可以撥打官方熱線進行咨詢。售前電話:95187轉1