Nginx 作为 HTTP 代理
这是在 PM2 前面使用 NGINX 作为 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 文档 中了解更多关于这些选项的信息!完成此操作后,您只需要一个在端口 3001
上运行的与 PM2 链接的 Node.js 服务器,您就拥有了一个生产就绪的 HTTP 服务器!