在現代web開發中,Node.js已經成為了一個不可或缺的元件。作為一個JavaScript執行時間環境,它讓我們可以透過JavaScript來編寫服務端應用程式。在本篇文章中,我們將會介紹如何在伺服器上建置Node.js環境。
在開始之前,我們需要進行一些準備。首先,你需要一台可以存取網路的伺服器。其次,你需要一個可以使用ssh協定登入伺服器的帳號和密碼。最後,你需要選擇一個Linux發行版作為伺服器的作業系統。
在本文中,我們將以Ubuntu Server 18.04 LTS為例進行示範。如果你使用的是其他Linux發行版或Windows,可能會有些差異,但大部分作業應該是通用的。
在開始建置Node.js環境之前,我們需要先安裝Node.js和npm。 npm是Node.js的套件管理工具,它可以幫助我們安裝、管理和升級Node.js的各種模組。
首先,我們需要更新系統的軟體套件清單:
sudo apt-get update
然後,我們可以安裝Node.js和npm:
sudo apt-get install nodejs npm
安裝完成後,可以使用下列命令檢查Node.js和npm的版本:
node -v npm -v
如果輸出了版本號,則表示Node.js和npm已經成功安裝。
要讓其他人可以存取我們的Node.js應用程序,我們需要一個Web伺服器,這時候Nginx就非常合適了。 Nginx是一個高效能的HTTP和反向代理伺服器,可以用來託管靜態檔案、處理HTTP請求和將請求轉送到其他伺服器。
安裝Nginx非常簡單:
sudo apt-get install nginx
安裝完成後,可以使用以下命令來啟動Nginx服務:
sudo systemctl start nginx
我們也可以使用以下命令來確認Nginx是否已經啟動:
sudo systemctl status nginx
如果輸出了「active (running)」字樣,則表示Nginx已經運作成功了。
現在,我們已經成功安裝了Node.js和Nginx,可以開始編寫我們的Node.js應用程式了。這裡我們以一個簡單的範例為例,建立一個HTTP伺服器並回傳一個靜態的「Hello World」頁面。
建立一個名為「app.js」的文件,並將以下程式碼複製到該文件中:
const http = require('http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World! '); }); server.listen(8000, () => { console.log('Server running at http://localhost:8000/'); });
這個應用程式建立了一個HTTP伺服器,監聽8000埠。當接收到請求時,它將傳回一個HTTP狀態碼為200(表示「OK」),一個名為「Content-Type」的HTTP回應標頭和一個內容為「Hello, World!」的回應體。
接下來,我們可以使用以下命令來運行該應用程式:
node app.js
如果一切正常,控制台將會輸出「Server running at http://localhost:8000/」這樣的訊息。
現在,我們可以在瀏覽器中存取該應用程序,URL為“http://localhost:8000/”。如果一切正常,將會看到一個顯示「Hello, World!」的頁面。
雖然我們可以直接使用Node.js運行應用程序,但這種方式並不適合在生產環境中使用。為了更好地管理和監視應用程序,我們可以使用pm2。
pm2是一個開源的Node.js應用程式管理器,可以幫助我們管理多個應用程式的生命週期,包括啟動、停止、重新啟動和監視。它還提供了各種功能,例如自動重啟、叢集模式、負載平衡、日誌記錄等等。
安裝pm2非常簡單:
sudo npm install -g pm2
安裝完成後,我們可以使用以下命令來啟動我們的應用程式:
pm2 start app.js
這將啟動一個名為“app”的應用程序,並在背景運行。我們可以使用以下命令來查看該應用程式的狀態:
pm2 status
如果一切正常,控制台將會輸出與下列語句類似的資訊:
┌─────┬─────────┬───────────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐ │ id │ name │ namespace │ state │ pm2 id │ version │ mode │ pid │ uptime │ restarts │ ├─────┼─────────┼───────────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤ │ 0 │ app │ default │ online│ 0 │ 0.0.0 │ cluster│ 7842│ 0s │ 0 │ └─────┴─────────┴───────────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
這表示我們的應用程式已經成功啟動,並且已經在後台以叢集模式運行了。現在,我們就可以使用Nginx將HTTP請求轉送到8000連接埠上執行的應用程式了。
現在,我們的應用程式已經可以在localhost:8000上運行了,但我們需要讓其他人也可以存取應用程式。這時候,我們需要使用Nginx將HTTP請求轉送到8000連接埠上。
首先,我們需要編輯Nginx的設定檔。使用下列命令開啟預設的設定檔:
sudo nano /etc/nginx/sites-available/default
在檔案的末端新增以下內容:
location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }
這會將所有的HTTP請求轉送至localhost:8000位址上。
接下來,我們需要重新啟動Nginx伺服器:
sudo systemctl restart nginx
最後,使用以下命令來查看應用程式是否運作正常:
pm2 status
現在,我們可以在瀏覽器中輸入伺服器的IP位址,即可看到我們的應用程式了。
總結
在本文中,我們介紹如何在伺服器上建立Node.js環境。我們安裝了Node.js和npm,使用Nginx託管靜態檔案和轉發HTTP請求,創建了一個簡單的Node.js應用程序,並使用pm2來管理該應用程式的生命週期。雖然在不同的環境下可能會有些微調,但是這些步驟應該可以幫助你快速地在伺服器上建立Node.js環境,並運行你的應用程式。
以上是伺服器搭建nodejs環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!