web-dev-qa-db-ja.com

同じマシン上のさまざまなnode.jsサーバーへのルーティング

同じマシン上に異なるプロジェクト用に複数のnode.jsサーバーをセットアップしたい(ただし、異なるポートでリッスンしている)(他のものに影響を与えることなくコードを編集してコードを編集できる)ただし、ポート番号を入力せずにブラウザーからこれらのWebアプリにアクセスできるようにして、代わりに異なるURLを異なるポートにマップします。 45.23.12.01/app-> 45.23.12.01:8001。

これに node-http-proxy を使用することを検討しましたが、SSLはまだサポートされていません。私の勘は、nginxが最も適しているかもしれないということです。これまでnginxをセットアップしたことがありません-どのような構成を行う必要がありますか?私が見た設定ファイルの例は、私が持っていないサブドメインのみを扱っています。

または、同じIPアドレスで複数のアプリをホストするためのより良い(安定した、手間のかからない)方法はありますか?

6
Dtang

まず、 wikiドキュメント を読むことから始めます。それは非常に徹底的で、サンプルが含まれています。 nginxの構成全体を説明することはしませんが、質問に関連する部分を以下に示します。

server {
    listen 80;
    server_name example.com;

    location /foo {
        proxy_pass http://localhost:9000;
    }

    location /bar {
        proxy_pass http://localhost:9001;
    }

    location /baz {
        proxy_pass http://localhost:9002;
    }
}

そこで何が起こっているのかは明らかなはずです。各 location は、指定されたURIを適切なnode.jsバックエンドにプロキシします。

7
hobodave

nginxは行く方法かもしれません。少なくとも、それは私のサーバーで実行しているものです。 config/descriptionの例はここにあります: https://blog.noort.be/2011/03/07/node-js-on-nginx.html

基本的にnginxでさまざまなサイトを設定し、各サイトはトラフィックを別のポートで実行されているnodejsアプリにルーティングします。

1
pierot