Nginx 作為 HTTP 代理
這是一種常見的方法,將 NGINX 作為 PM2 前端的 HTTP 代理。NGINX 將允許快速提供靜態檔案,管理 SSL 協定,並將流量重新導向到您的 Node.js 應用程式。
以下是一個 Node.js 應用程式的範例,在埠 3001 上監聽,而 NGINX 將埠 443 (HTTPS) 的流量轉發到 3001。此範例也會處理 Websocket 連線。
nginx.conf
upstream my_nodejs_upstream {
server 127.0.0.1:3001;
keepalive 64;
}
server {
listen 443 ssl;
server_name www.my-website.com;
ssl_certificate_key /etc/ssl/main.key;
ssl_certificate /etc/ssl/main.crt;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://my_nodejs_upstream/;
proxy_redirect off;
proxy_read_timeout 240s;
}
}
在 Nginx 文件 中深入了解這些選項!一旦您有了這些,您只需要一個連結到 PM2 的 Node.js 伺服器在埠 3001
上執行,您就會有一個可供生產環境使用的 HTTP 伺服器!