web-dev-qa-db-ja.com

nginxをリバースプロキシとして構成する

Passengerとnginxを使用して、仮想スライスホストでRailsアプリを提供しています。静的コンテンツの提供と、タグ付けされたアクションの処理にリバースプロキシを配置することを検討しています。

  1. 既存のnginxインストールを使用して、リバースプロキシに変更することはできますか? Webサーバーも必要ですか?この場合、典型的なアーキテクチャはどのようになりますか?

    nginx rev-proxy -> nginx web server -> passenger?
    

    または

    nginx rev-proxy ->  passenger?
    
  2. この場合、nginxが最良の選択ですか?

  3. リバースプロキシを同じスライスに配置できますか?

ありがとう

1
user55714
  1. はい、nginxインストールを使用できます。プロキシする必要はまったくありません。nginxでpassengerを使い続け、nginxサーバーの静的コンテンツを直接使用してください

  2. おそらく、ApacheまたはSquidを実行している場合は、それらの使用を検討するかもしれませんが、すでにnginxを使用しているため、nginxは最適な選択肢です。静的ファイルを提供するために乗客を使用しないようにすると、パフォーマンスが大幅に向上する可能性がありますが、もちろん、マイレージは異なります。

  3. 同じサーバー/スライスで問題ない可能性があります。トラフィックが大きすぎて影響があった場合は、必ず別のサーバーに移動してください。ただし、プロキシする理由はありません。それに応じて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;
    }     

}

明らかに、必要に応じてファイルタイプを追加します。

1
Jon Rhoades