最近、Perl Web アプリケーションを実行するための非常に一般的な選択肢は、リクエストを FastCGI デーモンまたは PSGI 対応 Web サーバー (Starman など) にプロキシする nginx Web サーバーの背後にあるようです。
なぜ一般的にこれを行うのかについて多くの質問があり (egなぜ Catalyst/Plack/Starman で nginx を使用するのですか? )、答えはどちらの場合にも当てはまるようです (例: nginx が静的コンテンツを提供できるようにする、アプリケーションを簡単に再起動できるようにする) 。サーバー、負荷分散など)
ただし、FastCGI とリバース プロキシ アプローチの使用の長所と短所に特に関心があります。Starman は、最速かつ最高の Perl PSGI アプリケーション/Web サーバーであると広く考えられているようです。どちらのアプローチもサポートしているようです:
- UNIX ドメイン ソケットと TCP ソケット
- フォーク/プロセス マネージャー スタイルのサーバーと非ブロッキング イベント ベース (AnyEvent など) サーバー。
- シグナル処理/グレースフル リスタート
- PSGI
同様に、どちらのオプションの nginx 構成も非常に似ています。
では、なぜどちらかを選択するのでしょうか。