首頁 > 軟體

淺談如何把Node專案部署到伺服器上

2023-02-03 18:01:26

1. 如何合理選購一臺伺服器

對於伺服器的選擇,我們主要有以下幾種選擇:

1. 阿里雲;

2. 騰訊雲;

3. 華為雲;

4. 亞馬遜雲;

國內使用者如果沒有特殊需求可以選擇前三種,這裡我阿里雲舉例,當然其他伺服器的設定都是相通的。

1.1. 伺服器位置的選擇;

我們都知道伺服器的不同設定都是有講究的,並且一定程度上關係到我們網站的使用者體驗,在選擇伺服器地址之前,我們需要清楚的知道自己網站的使用者群體主要集中在哪個區域:

比如我的使用者在杭州,我們在地域及可用區選項中可以選擇華東1(杭州),以此類推。

1.2. 伺服器映象的選擇;

目前我們常用的伺服器映象有:

1. centos;

2. windows Server;

3. Ubuntu;

根據自己的使用習慣選擇即可,我一般習慣選擇 centos, 接下來也會以 centos 來介紹相關的設定。

1.3. 伺服器系統磁碟儲存的選擇;

系統儲存的選擇也需要結合自身網站, 如果網站是內容很多的資源型網站(圖片, 視訊等),可以選擇稍微大一點的,比如 100G 以上,一般個人網站或者測試站50G足已,畢竟一份儲存一份錢。

1.4. 伺服器頻寬選擇;

一般為了給使用者一個好的網站體驗,會提高頻寬來降低網站載入時間。但是一味的提高頻寬會大大加大伺服器的費用,所以我們一方面需要在對網站自身做好優化,另一方面也可以使用物件儲存,這樣我們就能控制一定的頻寬了,比如目前 H5-Dooring 的頻寬在10M左右,一年伺服器費用大概 1-2W, 但是對一些測試型個人網站來說,選擇2-5M都是一個合適的範圍。

當然大家也可以選擇按流量付費。

1.5. 伺服器規格選擇;

 如果你是個人使用對吞吐效能沒有過多要求,可以選擇1核1G低配版的,不過建議個人網站最好選擇1核2G或者2核4G的,說不定你的網站就突然火了。

至於伺服器的其他設定,大家都可以隨意選擇,也可以直接用預設的。

2. 如何將域名解析到伺服器上

當我們選購好一臺伺服器之後,我們在控制檯可以看到自己伺服器的公網IP,這也是域名解析的關鍵。域名可以在雲服務平臺內直接購買,一般一個域名在20-60¥之間,推薦使用 .com .cn的域名,當前其他字尾的域名也可以,取決於你對網站的定位。

我們只需要在雲服務的域名管理中新增需要解析的伺服器記錄即可。

上圖的主機記錄設定中常用的有 www 和 @,我們選擇任何一個即可,主機記錄相當於域名的字首。

記錄值 就是我們伺服器的IP,也就是上面提到的公網IP。我們設定好之後點確認,等待5-10分鐘即可解析完成, 不過一般都在3分鐘內。

通過以上方式,我們的域名就成功解析到對應的伺服器上了,是不是很簡單? 前提是域名必須備案,至於如何備案,也很簡單,可以按照雲廠商指引進行操作。

3. 伺服器配套軟體的安裝和環境設定

有了上面伺服器的設定基礎,我們開始設定伺服器了。 作為一名前端程式設計師, 伺服器上必須要有node。接下來我們開始安裝它,在安裝之前,我們需要先進入伺服器終端:

金鑰對一般在伺服器列表的右側更多下拉項裡,我們一般第一次使用需要重置金鑰對, 在設定好金鑰對之後, 我們在自己計算機的終端輸入如下命令:

ssh root@你的伺服器公網IP

 之後在終端輸入完密碼之後即可進入伺服器。

如果伺服器沒有wget,建議大家可以安裝一下,畢竟後面很多場景都會用到。

yum install wget

是不是神似我們的 npm,之後我們就可以開心的安裝node了。

# 安裝nodejs
wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz
 
# 解壓
tar xf  node-v14.15.4-linux-x64.tar.xz 

解壓完成之後我們可以手動進入node的 bin 目錄,測測node是否可用。但是下載下來的node的目錄名又臭又長,怎麼辦呢?  這裡就要學好Linux了, 我這裡給大家介紹一種簡單的重新命名檔案/目錄名的方法:

mv node-v14.15.4-linux-x64 nodejs

mvlinux移動檔案的命令,當然如果在同一個目錄下,它也可以做重新命名功能使用。

最後一步就是設定node全域性環境了,這裡我們也是使用 linux 的命令ln。

ln -s /...你nodejs所在的更目錄/nodejs/bin/node  /usr/local/bin/node
 
ln -s /...你nodejs所在的更目錄/nodejs/bin/npm   /usr/local/bin/npm

這樣我們通過軟連線就實現在全域性環境下使用node了。

4. 通過命令列上傳自己的網站到伺服器

那麼環境有了之後我們就可以直接上傳我們的網站程式碼了,因為我們選擇的是 centos 伺服器,它沒有視覺化的介面來操作,而且我的電腦是 mac的, 這可咋整呢? 不用擔心,繼續用命令列。

我們可以使用命令列從本地上傳檔案或資料夾到伺服器, 也可以從伺服器下載檔案到本地電腦,這些操作無疑多虧了scp,接下來我將演示如何從本地上傳資料夾到伺服器。

scp -r 本地資料夾路徑 root@你的公網IP:/上傳到的伺服器路徑
 
# 如
 
scp -r ./dist root@xxx.xxx.xxx:/website/

其中-r是用來傳資料夾用的,如果你要上傳的檔案包含資料夾, 可以新增這個標識。

5. 網站部署和運維

網站可以用nginx代理和做負載均衡,網上也有很多資料介紹, 這裡我帶大家介紹一下PM2

PM2 是一個守護行程管理器,它將幫助我們管理和保障應用程式穩定線上。如果你是node的忠實粉絲,那麼它將是個不錯的選擇。作為前端工程師,搭建全棧的網站用node也是一個非常高效的選擇。

5.1. 安裝應用

最新的 PM2 版本可以使用 NPM 或 Yarn 安裝:

$ npm install pm2@latest -g
# or
$ yarn global add pm2

5.2. 啟動應用

啟動、守護和監控應用程式的最簡單方法是使用以下命令列:

$ pm2 start app.js

或輕鬆啟動任何其他應用程式:

$ pm2 start bashscript.sh
 
$ pm2 start python-app.py --watch
 
$ pm2 start binary-file -- --port 1520

我們可以傳遞給 CLI 的一些選項:

# Specify an app name
--name <app_name>
 
# Watch and Restart app when files change
--watch
 
# Set memory threshold for app reload
--max-memory-restart <200MB>
 
# Specify log file
--log <log_path>
 
# Pass extra arguments to the script
-- arg1 arg2 arg3
 
# Delay between automatic restarts
--restart-delay <delay in ms>
 
# Prefix logs with time
--time
 
# Do not auto restart app
--no-autorestart
 
# Specify cron for forced restart
--cron <cron_pattern>
 
# Attach to application log
--no-daemon

如我們所見,有許多選項可用於使用 PM2 管理我們的應用程式。目前H5-Dooring也是採用這種方式部署的,所以如果你有自己的網站, 趕緊參考這個教學部署吧。

到此這篇關於淺談如何把Node專案部署到伺服器上的文章就介紹到這了,更多相關Node專案部署到伺服器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com