web前端部署nodejs

王林
發布: 2023-05-23 14:55:07
原創
902 人瀏覽過

如今,前端開發越來越流行,越來越多的程式設計師開始涉足這個領域。而同時,需求越來越高的是讓前端開發人員在專案中擔任更多的職責,其中包括Web前端開發、Node.js後端開發、部署和監視。

在本文中,我們將著重討論如何部署Node.js服務,在實際生產環境中即可使用。如果你想在Web前端領域有所發展,這將會是一個很好的起點。

第一步:準備伺服器

安裝Node.js之前,我們需要準備一台Ubuntu的伺服器。我們將使用這個伺服器來運行Node.js應用程式。

對於OpenShift和Heroku的雲端運算平台,運行Node.js程式非常簡單。但是,在本文中,我們將假設您已經取得並配置了一個私有伺服器。

第二步:安裝Node.js

為了安裝Node.js,我們將使用apt套件管理器。我們需要安裝Node.js和npm(node.js套件管理員)。執行以下命令將Node.js安裝到您的Ubuntu伺服器上:

sudo apt-get update
sudo apt-get install nodejs npm
登入後複製

請注意,有時您需要分別安裝nodejs和nodejs-legacy套件:

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy npm
登入後複製

#安裝完成後,我們可以使用以下指令檢查Node.js版本:

nodejs -v
登入後複製

此指令應該會列印出您已經安裝的Node.js版本號。

第三步:設定防火牆存取

我們需要確保Node.js服務可以從外部存取。透過開啟伺服器的防火牆端口,讓其他伺服器可以存取。

預設情況下,Ubuntu伺服器有ufw防火牆。為了允許外部存取您的應用程序,您需要將TCP流量定向到主機。請執行以下命令將連接埠開啟。

sudo ufw allow 8080/tcp
登入後複製

在許多情況下,您需要將連接埠定向到對您有意義的連接埠號碼(即80或443),因為這些連接埠是Web服務的常見連接埠。但是,為了簡潔起見,我們將在此處選擇連接埠8080。一旦您的應用程式正常運行,則可以將其遷移到該連接埠。

第四步:編寫應用程式

為了部署我們的Node.js應用程序,我們需要編寫一個簡單的範例應用程式。打開您最喜歡的編輯器,並建立一個名為app.js的檔案。在其中新增以下內容:

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World
');
}).listen(8080);

console.log('Server running at http://YOUR_IP_ADDRESS:8080/');
登入後複製

其中,YOUR_IP_ADDRESS為您伺服器的IP位址。

在您安裝了Node.js和npm之後,請鍵入以下命令以安裝http套件到您的應用程式:

npm install http
登入後複製

這些程式碼意味著什麼?我們正在建立一個簡單的HTTP伺服器,該伺服器將在執行時為所有入站流量偵聽8080連接埠。在每個請求中,伺服器將回應「Hello World」。

在程式碼中新增了console.log語句,該語句顯示伺服器正在使用的IP位址和連接埠號碼。當您運行應用程式時,您將在終端中看到此輸出。這將幫助您確認應用程式是否正在運行以及訪問哪個URL。

第五步:運行應用程式

我們的應用程式已做好準備,現在讓我們運行它吧!回到終端,並前往app.js檔案所在的目錄。在那裡,您可以輸入以下命令:

node app.js
登入後複製

這將啟動您的應用程式。應用程式將在背景運行,並開始在您的伺服器的8080連接埠上運行。瀏覽器中的IP位址或curl命令中的該位址作為GET請求將向您發送「Hello World」。

第六步:設定永久性

儘管在伺服器上使用命令啟動應用程式很常見,但在實際生產環境中,您可能會發現自己必須依靠伺服器管理工具來自動化和監視進程。

為了讓應用程式在伺服器重新啟動後每次自動啟動,您需要建立一個Systemd服務。 Systemd是一個許多Linux發行版中使用的初始化系統,它能夠同時管理和監控系統進程。

為此,請在Ubuntu中鍵入以下命令:

sudo nano /etc/systemd/system/YOUR_APP.service
登入後複製

請使用應用程式的實際名稱取代YOUR_APP。在檔案中加入以下內容:

[Unit]
Description=YOUR_APP
After=syslog.target network.target

[Service]
Environment=NODE_PORT=8080
Type=simple
User=YOUR_USERNAME
ExecStart=/usr/bin/node /path/to/your/app.js
Restart=on-failure

[Install]
WantedBy=multi-user.target
登入後複製

在上面這段程式碼中,需要以下變更:

-YOUR_APP:應用程式的名稱

-NODE_PORT:該應用程式偵聽的連接埠

-YOUR_USERNAME:要在其中執行服務的使用者

-/path/to/your/app.js:應用程式檔案的實際路徑

#下一步,您需要讓Systemd重新載入並啟動自訂服務。鍵入以下命令以將您的檔案複製到正確的目錄並重新載入服務:

sudo systemctl daemon-reload
sudo systemctl enable YOUR_APP
sudo systemctl start YOUR_APP
登入後複製

此時,您的應用程式已配置為使用Systemd啟動。您可以使用以下命令查看應用程式的狀態:

sudo systemctl status YOUR_APP
登入後複製

第七個步驟:執行自訂命令

現在,您可以使用Systemd在伺服器重新啟動後自動執行應用程式了。但是,您也可以使用Systemd管理來自訂命令,這些命令將在特定時間內執行。

例如,您可以使用以下命令在部署更新期間關閉應用程式:

sudo systemctl stop YOUR_APP
登入後複製

然後,在完成更新後,重新啟動應用程式:

sudo systemctl start YOUR_APP
登入後複製

您已經成功地將您的Node.js應用程式部署在實際生產環境中。這是一個很好的起點,讓您的開發人員和客戶能夠存取您的應用程式。

以上是web前端部署nodejs的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!