質問

Plack/Starmanを使用して、Little Catalyst Webアプリを展開しようとしています。すべてのドキュメントは、Nginxと組み合わせてこれを使用したいことを示唆しているようです。これの利点は何ですか?ポート80でまっすぐにスターマンを使用してみませんか?

役に立ちましたか?

解決

特にnginxである必要はありませんが、いくつかの理由でアプリケーションサーバーにプロキシングするフロントエンドサーバーが必要です。

  1. ポート80でフロントエンドサーバーを実行しながら、通常のユーザーとしてハイポートで触媒サーバーを実行できるようにします。

  2. 静的ファイル(画像、JS、CSSなどの通常のリソース、およびダウンロード期間中PERLプロセスを縛られることなくX-SendfileまたはX-Accel-Redirectを使用する可能性のあるダウンロードを使用する)を提供するには。

  3. Edge Sideが含まれるEdge Sideを含むより複雑な構成に移行したい場合、またはMemcachedまたはMogilefs(Nginxができることの両方)、またはLoad-Balancing / HA Configから直接Webサーバーを提供する場合、物事を容易にします。

他のヒント

#Plackでこの質問をし、@NothingMuchから次の回答を得ました(フォーマットを追加しました):

nginxを使用すると、ロードバランシング/フェイルオーバータイプのものをセットアップできます。サイトが小/シンプルな場合、それはやり過ぎかもしれません。

スターマンが持っているかもしれない不利な点はわかりません。おそらく、静的ファイルに多くのヒットがある場合、nginxはそれらを処理するためにCPU/メモリを使用することが少なくなりますが、典型的なWebアプリでは重要ではありません。ただし、静的なファイルのダウンロードのために、大きなダウンロードがスターマンワーカーを結びつける可能性があります。 (おそらくそうではありません、sendfileで。)それは私が考えることができるすべてについてです。

...ダウンタイムなしでアップグレードを行いたい場合、フェールオーバーセットアップは素晴らしいことです。 (古いバージョンに「失敗」します。)

もう1つの理由は、軽量のフロントエンドサーバー(Apacheでも大丈夫です)が、典型的なスターマンプロセス(MB対数十個または100 MB以上)よりも、接続ごとにはるかに少ないメモリを消費することです。接続はしばらく開いているため、特にキープアライブ接続を使用する場合は、RAMがはるかに少ない多くの同時接続をサポートできます。プロキシフロントエンドサーバーのバッファサイズが、バックエンドからすぐに典型的なHTTP応答をロードするのに十分な大きさであることのみを確認してください。その後、バックエンドは次のリクエストを自由に処理できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top