私のサーバーを指すワイルドカードDNSがあります。 * .domain.com
各サブドメインを独自のDockerコンテナーにルーティングしたいのですが。そのため、box1.domain.comは適切なDockerコンテナーに移動します。これは、主にHTTPとSSHのトラフィックに対して機能します。
または、ポートはサブドメインの一部である可能性があります。 80.box1.domain.com。私はたくさんのDockerコンテナを用意するので、ソリューションはすべてのコンテナに対してハードコーディングされているのではなく、動的である必要があります。
インターロック を使用して、 nginxプラグイン を使用してhttpトラフィックをルーティングしました。サブドメインだけでは機能しないため、SSH接続ごとにランダムなポートを使用することにしました。
別の解決策は https://github.com/jwilder/nginx-proxy を使用することです。
このツールは、リクエストを適切なコンテナに自動的に転送します(VIRTUAL_Hostコンテナ環境変数を介してサブドメインに基づく) 。
たとえば、box1.domain.comをコンテナーにリダイレクトする場合は、VIRTUAL_Hostコンテナ環境変数を「box1.domain.com」。
ここに私が書いた詳細なチュートリアルがあります: http://blog.florianlopes.io/Host-multiple-websites-on-single-Host-docker 。
最も簡単な解決策は、Apache mod_rewrite RewriteMapメソッドを使用することです。テキストファイルに対して使用すると非常にパフォーマンスが高くなりますが、必要に応じてスクリプトを呼び出すことができます。 別のStackOverflow回答 があり、スクリプトのバリアントをかなりうまくカバーしています。
Apacheを避けたい場合は、dotCloudの優秀な人々がHipacheを作成して、PaaSサービスのルーティングを行いました。彼らは さまざまなことを文書化した 独自のソリューションを構築する前に試しました。 Dockerコンテナーへのルーティングに正確にHipacheを使用するtsuru.ioへの参照を見つけたので、この目的のためにそれを確実に検証します。