这是使用NGINX作为PM2的HTTP代理前端的常用方法。NGINX 将允许快速提供静态文件、管理 SSL 协议并将流量重定向到您的 Node.js 应用程序。

    下面是一个 Node.js 应用程序监听端口 3001 的示例,NGINX 将流量从端口 443 (HTTPS) 转发到 3001。该示例还将处理 Websocket 连接。

    nginx.conf:

    1. upstream my_nodejs_upstream {
    2. server 127.0.0.1:3001;
    3. keepalive 64;
    4. }
    5. server {
    6. listen 443 ssl;
    7. server_name www.my-website.com;
    8. ssl_certificate_key /etc/ssl/main.key;
    9. ssl_certificate /etc/ssl/main.crt;
    10. location / {
    11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    12. proxy_set_header X-Real-IP $remote_addr;
    13. proxy_set_header Host $http_host;
    14. proxy_http_version 1.1;
    15. proxy_set_header Upgrade $http_upgrade;
    16. proxy_set_header Connection "upgrade";
    17. proxy_pass http://my_nodejs_upstream/;
    18. proxy_redirect off;
    19. proxy_read_timeout 240s;
    20. }
    21. }

    Nginx 文档中了解有关这些选项的更多信息!一旦你有了这个,你只需要一个在端口上运行的 PM2 链接的 Node.js 服务器3001,你就会有一个生产就绪的 HTTP 服务器!