Passengerとnginxを使用して、仮想スライスホストでRailsアプリを提供しています。静的コンテンツの提供と、タグ付けされたアクションの処理にリバースプロキシを配置することを検討しています。
既存のnginxインストールを使用して、リバースプロキシに変更することはできますか? Webサーバーも必要ですか?この場合、典型的なアーキテクチャはどのようになりますか?
nginx rev-proxy -> nginx web server -> passenger?
または
nginx rev-proxy -> passenger?
この場合、nginxが最良の選択ですか?
リバースプロキシを同じスライスに配置できますか?
ありがとう
はい、nginxインストールを使用できます。プロキシする必要はまったくありません。nginxでpassengerを使い続け、nginxサーバーの静的コンテンツを直接使用してください
おそらく、ApacheまたはSquidを実行している場合は、それらの使用を検討するかもしれませんが、すでにnginxを使用しているため、nginxは最適な選択肢です。静的ファイルを提供するために乗客を使用しないようにすると、パフォーマンスが大幅に向上する可能性がありますが、もちろん、マイレージは異なります。
同じサーバー/スライスで問題ない可能性があります。トラフィックが大きすぎて影響があった場合は、必ず別のサーバーに移動してください。ただし、プロキシする理由はありません。それに応じてURLを変更してください。これがserverfaultの機能です。
設定ファイルの例は次のとおりです。
server {
listen www.example.com:80;
server_name www.example.com;
location ~* ^.+\.(jpg|jpeg|gif|png|css|bmp|js|ico|swf)$ {
root /home/static/files;
expires 7d;
}
location / {
root /home/Rails_app;
passenger_enabled on;
}
}
明らかに、必要に応じてファイルタイプを追加します。