python wsgiを介して公開され、それを世界にデプロイしようとしていたアプリがあります。そこから提供される静的アセットはありません。アプリは単一のマシンにデプロイされます。 uwsgiを使用してwsgiアプリを提供し、2つのオプションを考えることができます。
マシン上の単一のuwsgiインスタンスを介してサービスを提供します(使用するワーカー/プロセスの数を増やして調整し、2 *#コアから開始する可能性があります)
同じマシン上のnginxの背後で、それぞれが単一のワーカーを持つ複数のuwsgiインスタンスを実行します。
Nginxの背後で単一のuwsgiインスタンスを実行します
覚えておくべきことの1つは、サーバーがすでにロードバランサーの背後にあるということです。
提供する静的アセットがある場合は、#2または#3で実験することを検討します。静的ファイルがないので、やり過ぎのようです。
この場合、nginxの背後でuwsgiを実行することにメリットはありますか?適切な数のワーカーを持つ単一のuswgiサーバーとは対照的ですか?
UWSGIについてはよくわかりませんが、明らかにスレッド用に設計されているため、まったく同じマシン/ VMで実行されている類似のインスタンスをいくつか使用することが理にかなっているユースケースは想像できません。そのちょうど追加のオーバーヘッド。したがって、#2は実際にはオプションではありません(アプリを頻繁に再起動する必要がある場合は、そのような設定を使用するのではなく、コードを修正してください)。
#3は今はちょっと役に立たないように聞こえますが、そうではありません。 nginxはそれほどオーバーヘッドではなく、パフォーマンスとメモリフットプリントは、この場合、python appと比較して、おそらく無視できます。レイテンシーに影響を与えますが、これも短いことでは問題になりません。 RTSゲームサーバーの基本的には構成に要約されます。
これが邪魔にならないように、ここで考慮すべきことがいくつかあります。
アプリがコードをスケーリングできるよりも速くスケーリングしない(またはまったくスケーリングしない)と確信している場合は、追加機能は必要ありません(アプリは思ったほど安定していません) !)そして、ホスティング業者の負荷分散機能を確信している場合は、nginxをスキップしてください。そうでない場合、または上記が当てはまるかどうか100%確信が持てない場合は、nginxを使用してください。オーバーヘッドはそれほど多くありませんが、多くの問題を回避できる可能性があります。