1 つのサーバーを使用して、複数のドメインに分散された複数の Node.js Web アプリをホストしています。私の現在のやり方は、アプリケーションごとに異なるポートで Express サーバーを実行し、要求を正しいポート/Express サーバーに単純にルーティング (リダイレクト) するベース サーバーを実行することです。これは機能しますが、ベース サーバーがすべての HTTP リクエストをルーティングし (手動でリダイレクトすることにより)、ユーザーが [hostname.com]:8000 でホストされているアプリを表示することを意味します。
少し調査した結果、ルーティングのニーズにhttp-proxyを使用できることがわかりましたが、同じシステムで複数の Express サーバーを実行するためのベスト プラクティスがあるかどうかを知りたいです。これが私がそれを行うことを計画している方法です:
各 Web アプリには、完全な Express フォルダー構造 (app.js、routes、views など) を持つ独自のフォルダーがあります。アプリはドメインごとにグループ化されるため、フォルダー構造の例は次のようになります。
hostname.com/
app.js
routes/
views/
...
app1/
app1.js
routes/
views/
...
app2
...
hostname2.com/
app.js
routes/
views/
...
各 app.js を node (または現在使用しているforever ) で個別に実行する必要があり、それぞれが内部で異なるポートを使用する必要があり、クロスアプリ リダイレクトは対象アプリ。
それで、それが私の現在の計画です。それにはどのような問題があり、どのような落とし穴を避けるべきですか? 最も重要なのは、この問題 (Node.js/Express を使用して同じシステムで複数の Web アプリをホストする問題) に対する確立された解決策があるかどうかです。
編集: 最終的には WebSocket と HTTPS を使用する予定です。セットアップがサポートできる帯域幅の量は、私にとってほとんど重要ではありません。これは開発サーバーです (少なくとも今のところ)。WebSockets の問題を取り上げてくれた David Ellis に感謝します。
2 番目の編集: EhevuTov と David Ellis の両方の回答に感謝します。どちらも大いに役立ちました。私はまだアプリケーションの全体的な構造に落ち着いており、その質問はこの StackOverflow questionによって詳細に対処されているようです
3番目の編集:この質問を投稿してから、私は道を歩みました(ただし、まだまだ先があります)。私の GitHub リポジトリ でこのファイルをチェックしてください。これは、この質問への回答から学んだことを活用しています!