2017-02-27 9 views
1

NodeJSクラスターを介して複数のCPUコアに拡張しようとしているNode JSアプリケーションに大きなルートセットがあります。ノードJSクラスター間のエクスプレスルートの分割

私が気づいていた計画は、異なる組のexpress.jsルートを扱う別のワーカーを持つことでした。例:

依頼者が依然として間違った作業者に着陸する可能性があるため、作業者IDの条件付きを使用するだけでは不十分です。また、プロセスはすべて同じポートで実行されるため、& proxy_passとnginxの内部のURLを一致させることはできません。

現時点では、組み込みのラウンドロビン方式を使用するのではなく、クラスタのルーティング(マスターからワーカーへ)をURLに照合して正しいワーカーにルーティングすることを検討しています。しかし、これはちょっとハッキリしているようだし、他の誰かがこれを解決したのか、それとも他のアイディアがあるのだろうかと思います。

答えて

1

私のソリューションは、異なるポートに耳を傾け、複数の特急のアプリを実行することで、プロキシに前面にnginxのサーバーを設定し

は、次の3つの急行のアプリを持っていると言う、それぞれがルータの特定の種類を扱う、と聞くでしょう要請

//API app used to handle /api routing 
apiApp.listen(8081); 

//Admin app used to handle /admin routing 
adminApp.listen(8082); 

//Blog app used to handle /blog routing 
blogApp.listen(8083); 

をし、要求プロキシにnginxのサーバーの設定::独立したポート(808180828083)に、そしてもちろん、彼らはクラスタモードで実行する必要があり

server { 

    # let nginx server running on a public port 
    listen  80; 

    location /api { 
     proxy_pass http://127.0.0.1:8081 
    } 

    location /admin { 
     proxy_pass http://127.0.0.1:8082 
    } 

    location /blog { 
     proxy_pass http://127.0.0.1:8083 
    } 
} 

proxy_passは、単に/ apiへのリクエストを8081でリッスンしているサーバーに転送するようにnginxに指示します。あなたは完全な文書をチェックすることができますhere

+0

だから私はそれが唯一のオプションだと思います: – Antoine

関連する問題