在 Linux 系統中,使用 Nginx 作為 Node.js 應用程序的反向代理是一種常見的部署方式。以下是配置 Nginx 以代理 Node.js 應用程序的步驟:
安裝 Node.js 和 Nginx: 確保你已經在你的 Linux 系統上安裝了 Node.js 和 Nginx。你可以使用包管理器來安裝它們。例如,在基于 Debian 的系統上,你可以使用以下命令:
sudo apt update
sudo apt install nodejs npm nginx
啟動 Node.js 應用程序:
假設你已經有一個 Node.js 應用程序,并且它可以通過 npm start
命令啟動。
配置 Nginx:
編輯 Nginx 的配置文件。通常,配置文件位于 /etc/nginx/sites-available/
目錄下。你可以創建一個新的配置文件,例如 yourapp
:
sudo nano /etc/nginx/sites-available/yourapp
在這個文件中,添加以下內容:
server {
listen 80;
server_name yourdomain.com; # 替換為你的域名或公網 IP
location / {
proxy_pass http://localhost:3000; # 替換為你的 Node.js 應用程序的地址和端口
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;
}
}
這個配置告訴 Nginx 監聽 80 端口,并將所有請求代理到運行在 localhost:3000
的 Node.js 應用程序。
啟用配置:
創建一個符號鏈接,將你的配置文件鏈接到 sites-enabled
目錄:
sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/
測試 Nginx 配置: 在重新加載 Nginx 之前,測試配置文件是否有語法錯誤:
sudo nginx -t
如果配置文件沒有問題,你會看到類似以下的輸出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加載 Nginx: 重新加載 Nginx 以應用新的配置:
sudo systemctl reload nginx
啟動 Node.js 應用程序:
確保你的 Node.js 應用程序正在運行。你可以使用 pm2
或其他進程管理器來管理你的 Node.js 應用程序。
npm start
現在,你的 Node.js 應用程序應該可以通過 Nginx 訪問了。如果你使用的是域名,請確保你的 DNS 設置正確,并且域名指向了你的服務器 IP 地址。