在 Ubuntu 上使用 Node.js 實現負載均衡,通常會借助反向代理服務器,如 Nginx 或 HAProxy。以下是使用 Nginx 作為反向代理服務器來實現負載均衡的步驟:
安裝 Node.js 應用: 首先,確保你已經在 Ubuntu 上安裝了 Node.js,并且你的 Node.js 應用正在運行。
安裝 Nginx: 打開終端并運行以下命令來安裝 Nginx:
sudo apt update
sudo apt install nginx
配置 Nginx:
編輯 Nginx 的默認配置文件或創建一個新的配置文件。通常,配置文件位于 /etc/nginx/sites-available/ 目錄下。你可以創建一個新的配置文件,例如 myapp:
sudo nano /etc/nginx/sites-available/myapp
在這個文件中,添加以下內容來配置負載均衡:
upstream myapp {
server 127.0.0.1:3000;
server 127.0.0.1:3001;
# 可以添加更多的服務器地址和端口
}
server {
listen 80;
location / {
proxy_pass http://myapp;
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;
}
}
這個配置定義了一個名為 myapp 的上游服務器組,其中包含了兩個 Node.js 應用的實例。Nginx 會將所有傳入的請求分發到這些實例上。
啟用配置:
創建一個符號鏈接將你的配置文件鏈接到 sites-enabled 目錄,以便 Nginx 加載它:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
測試配置: 在重新加載 Nginx 之前,檢查配置文件是否有語法錯誤:
sudo nginx -t
重新加載 Nginx: 如果配置測試成功,重新加載 Nginx 以應用更改:
sudo systemctl reload nginx
啟動 Node.js 應用: 確保你的 Node.js 應用正在運行,并監聽在配置中指定的端口上(例如 3000 和 3001)。
現在,Nginx 將作為反向代理服務器,將客戶端的請求分發到你的 Node.js 應用實例上,從而實現負載均衡。
請注意,這只是一個基本的負載均衡配置示例。Nginx 提供了許多高級功能,如會話保持、SSL/TLS 加密、緩存等,可以根據你的需求進行配置。