Nginx / 同じサーバー内に複数Node.jsプロジェクトを立ち上げる方法

Nginxを使ってリバースプロキシを構築し、同じサーバー内に複数Node.jsプロジェクトを構築する方法メモ。


まず、nginxを構築し、設定ファイル(nginx.conf)を以下の通りにします。

# /nginx/default.conf
server {
    listen       80;    
    location /a/ { ## API - 1
        proxy_pass  http://localhost:8080/;
    }

    location /b/ { ## API - 2
        proxy_pass  http://localhost:8000/;
    }
}

つまりこのようにポートで切り分ける感じですね。

なお「同じドメインを使って運用したいけど、サーバー1台じゃやだ」等場合は、プライベートネットワークを構築します。

そんな場合はこんな感じです。

server {
    listen       80;    
    location /a/ { ## API - 1
        proxy_pass  http://192.168.1.2/;
    }

    location /b/ { ## API - 2
        proxy_pass  http://192.168.1.3/;
    }
}

また、SSL対応(Let’s enclipt導入)する場合、追加に以下のような設定します。

    listen       443;    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/younaship.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/younaship.com/privkey.pem;

    location /.well-known { ## SSL key
        root  /var/www/lets/;
    }

こうすると各プロジェクト(サーバー)で導入しなければいけなかったSSL対応も一括で出来てかなり楽になりますね◎

ちなみにパス指定の

location /aaa
location /aaa/

は全く意味が違うので注意です。

この構成で構築する際はここに注意しましょう_ _b