私はこの質問を自分で調べましたが、1つのWebサーバーですべての小さなアプリを一度に実行できる解決策を見つけたと思います。
これは、Remi Taylor( Githubの@remi)https://github.com/remi/rack-stackによって作成されたRackStacknot -yet-a-gemに基づいています。
RackStackはRack::Builderに触発されており、このようなタスクを実行するのにも適しているようです。RackStackはさらに同じ方向に進み、「スタック」機能を非常に便利で便利な方法で抽象化します。
これは、2つのサンプルアプリ(SinatraとRack)で構成されるRackStackのデモです: https ://github.com/stanislaw/skeletons/tree/master/rack_stack 。実サーバーでのスタックアプリの動作を模倣するために、/ etc / hostsファイルを変更して、localhost2ホストが127.0.0.1を指すようにしました。
シンサーバーを起動してから、localhostまたはlocalhost2でリクエストを実行します。「localhost」へのリクエストはFirstAppによって処理され、「localhost2」へのリクエストはSecondAppによって処理されます。
実サーバーでアプリをテストするときに発生する可能性のある問題を予測することはできませんが、このアプローチはまさに私が探していたもののようです。実サーバーでは、NginxがリクエストをThinサーバーがリッスンするソケットへのラックアプリに関連付けられているすべてのホスト。そのため、RackStackは、スタックにあるアプリに宛てられたリクエストのみに対応します。
提案、このスキームの改善、または代替案は引き続き歓迎されます!