Nginx による本番環境設定

HTTP プロキシとしての Nginx

PM2 のフロントエンドとして NGINX を HTTP プロキシとして使用することは一般的な手法です。NGINX を使用すると、静的ファイルを迅速に提供し、SSL プロトコルを管理し、トラフィックを Node.js アプリケーションにリダイレクトできます。

ポート 3001 でリッスンする Node.js アプリケーションと、ポート 443 (HTTPS) から 3001 にトラフィックを転送する NGINX の例を次に示します。このサンプルでは、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 サーバーが完成します!

このページに貢献する