私はnginxの動的アップストリーム構成を試していましたが、redisやmysqlなどのサードパーティソースからアップストリーム構成を実装するための適切なソリューションを見つけることができませんでした。
その背後にある考え方は、プライマリサーバーに単一のファイル構成を設定し、環境条件に基づいてさまざまなアプリサーバーにリクエストをプロキシすることです。異なるポートでYワーカーを実行しているXサーバーがある動的デプロイメントについて考えてみてください。たとえば、新しいアプリを作成してデプロイします。アプリマネージャーはサーバーを選択し、ワーカー(Ruby/PHP/Python)をロールアウトして、ステータスが「up」の中央データベースにip:portを報告します。この時点で、指定されたURLにアクセスすると、nginxはすべてのリクエストを指定されたip:portアップストリームにプロキシする必要があります。この概念実証は、主に内部のニーズのために、本番環境に対応しているとは想定されていないことを除けば、全体はherokuとほぼ同じです。
私が見つけた最も簡単な解決策は、RubyベースのDNSサーバーでリゾルバーを使用することでした。それは機能し、nginxはIPアドレスを正しく取得しますが、唯一の問題は、そのIPのポート番号を定義できないことです。
2番目の解決策(私はまだ試していません)は、おそらくErlangで書かれたプロキシサーバーとして何か他のものをロールバックすることです。この場合、静的コンテンツを提供するために何かを使用する必要があります。
これをより柔軟で安定した方法で実装する方法はありますか?
P.S.いくつかの研究オプション:
これはMichaelHamptonが参照したとおりです-Luaを使用して動的アップストリームを実装します
http://sosedoff.com/2012/06/11/dynamic-nginx-upstreams-with-lua-and-redis.html
ダンによる前の答えのように見えますが、あなたが考えていることとより一致しています。
しかし、これを簡単に実現できるnode.jsベースのリバースプロキシを作成しました。