以前は Ruby on Rails に Webrick サーバーを使用していましたが、上司から apache サーバーで ROR コードを実行するように依頼されました。これら 2 つのサーバーにはいくつかの違いがあることがわかり、コントローラーにアクセスする方法がわかりません/ apache で ROR に関する本を知っている人はいますか? どうも!
1 に答える
Apache で直接実行するには、Apache モジュールとして機能するPhusion Passengerを使用するのが最善の策です。
ただし、概念的な情報も少し不足していると思います。レールをホストするために使用される一般的なラック サーバーの一部を次に示します。
WEBrick : 純粋に Ruby で実装された Web サーバー (Ruby に同梱されています)。パフォーマンスはあまり高くなく、比較的制限されています。これは優れた開発 Web サーバーになりますが、ほとんどの人は本番環境では使用しません。
Thin : 非常にパフォーマンスの高いイベント Web サーバーで、特に簡単に起動して実行できます。
Unicorn : 広く使用され、推奨されている (GitHub によって作成された) 分岐 Web サーバーですが、運用環境で起動して実行するには、もう少し管理が必要です。
ただし、ほぼすべてのケースで、選択した Rails Web サーバーの前に (プロキシとして) Nginx または Apache を使用するのが一般的です。
Nginx/Apache は、上記のどのオプションよりも、静的ファイルの提供においてはるかに優れた仕事をします。CDN を使用してアセットをホストしていない場合は、それらをホストするようにプロキシを設定する必要があります。
Nginx/Apache は、大量のリクエストを管理してキューに入れるのに優れているため、アプリケーション サーバーはキューに入れられた大量のリクエストではなく、処理中のリクエストに集中できます。
セキュリティの脆弱性のための表面積が少なくなります。
私の選択した構成はNginx + Unicornです。私は、Apache は管理するにはあまりにも扱いにくく、Unicorn は特に優れています。