首頁 >web前端 >前端問答 >nginx nodejs怎麼部署

nginx nodejs怎麼部署

PHPz
PHPz原創
2023-04-26 09:07:011740瀏覽

概述

在現代的Web 應用程式開發中,Nginx 和Node.js 是兩個非常重要的工具,Nginx 作為一個高效能的Web 伺服器,主要用來處理HTTP 請求和靜態檔案的存取;而Node.js 則被廣泛應用於建立高效能的Web 應用程式和服務端API,因其出色的非同步、非阻塞IO 模型和豐富的第三方模組生態而備受青睞。

在本文中,我們將介紹如何在一台Linux 伺服器上同時部署Nginx 和Node.js,並利用Nginx 的反向代理功能來提高我們的Web 應用效能和可靠性,最終實現一個高效率穩定的Web 服務。

準備工作

為了完成這個教學課程,我們需要一台執行 Ubuntu 18.04 LTS 作業系統的伺服器。我們還需要安裝最新版本的 Node.js 和 Nginx。

安裝 Node.js

首先,我們需要為我們的伺服器安裝 Node.js。我們將使用 nvm (Node Version Manager) 來管理我們的 Node.js 版本,因為它可以輕鬆安裝和切換不同的 Node.js 版本。

  1. 安裝nvm

首先,我們需要使用curl 指令下載nvm 安裝腳本:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.36.0/install.sh | bash

然後,我們執行以下指令來套用設定變更:

source ~/.bashrc

現在,nvm 已經安裝在我們的伺服器上了。

  1. 安裝Node.js

我們可以使用以下指令來檢查可用的Node.js 版本:

nvm ls-remote

然後,我們選擇一個我們想要安裝的Node.js 版本,並使用以下命令來安裝它:

nvm install 14.16.1  // 这里我们选择的是 v14.16.1 版本

現在,我們已經成功安裝了Node.js。

安裝 Nginx

接下來,我們需要安裝 Nginx 伺服器來處理 HTTP 請求和靜態檔案的讀取。在Ubuntu 18.04 上,我們可以使用以下命令來安裝Nginx:

sudo apt-get update
sudo apt-get install nginx

安裝完成後,我們可以使用以下命令來啟動Nginx 服務:

sudo systemctl start nginx

然後,我們可以使用以下命令來檢查Nginx 服務狀態:

sudo systemctl status nginx

如果Nginx 服務已經成功啟動,我們應該能夠從瀏覽器存取我們的伺服器的公用IP 位址,並看到Nginx 的預設歡迎頁面。

設定 Nginx 反向代理

現在,我們已經成功安裝了 Nginx 和 Node.js。接下來,我們將使用 Nginx 的反向代理功能來將外部 HTTP 請求轉送到 Node.js 伺服器上的指定連接埠號碼。

  1. 編輯Nginx 設定檔

編輯Nginx 的設定檔/etc/nginx/nginx.conf,找到http 區段中的server 節點,並在其中加入以下程式碼:

upstream nodejs_backend {
    server    127.0.0.1:3000;  # 这里的端口号需要和我们 Node.js 端口号一致
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    
    location / {
        proxy_pass http://nodejs_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

這裡我們使用了Nginx 的upstream 模組來定義了一個名為nodejs_backend 的upstream server,它指向127.0.0.1:3000,也就是我們將在後面執行的Node.js 伺服器連接埠號碼。

接下來,我們定義了一個名為 default_server 的虛擬主機,它監聽了 80 端口,並將 HTTP 請求轉送到 nodejs_backend 上。其中三個 proxy_set_header 參數用來設定轉送請求的一些額外資訊。

  1. 重啟Nginx 服務

完成上述步驟後,我們需要重新啟動Nginx 服務以使其生效:

sudo systemctl restart nginx
  1. 執行Node. js 服務

現在,我們已經成功配置了Nginx 的反向代理功能,並準備在Node.js 伺服器上啟動服務來接收來自Nginx 的請求。

建立一個名為app.js 的文件,並使用以下程式碼啟動一個簡單的http 伺服器:

const http = require('http');
const server = http.createServer((req, res) => {
  res.writeHead(200);
  res.end('Hello, World!');
});
server.listen(3000, () => {
  console.log('Server running on http://127.0.0.1:3000/');
});

現在,我們使用以下命令啟動我們的Node.js App:

node app.js

運行成功後,我們就能從瀏覽器中存取我們的伺服器的公用IP 位址,並看到我們的Node.js 應用程式輸出了一則"Hello, World!"訊息。

總結

恭喜,我們已經完成了在一台 Linux 伺服器上同時部署 Nginx 和 Node.js 的教學。透過使用 Nginx 的反向代理功能來轉送 HTTP 請求,我們可以在 Node.js 中編寫 Web 應用程式和 API,並透過 Nginx 來處理靜態檔案和負載平衡,從而提高 Web 應用程式的效能和可靠性。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn