1

別のドメインを介して静的アセットを提供するようにWebサイトを最適化して、ダウンロード/アップロードの帯域幅を減らし、キャッシュを簡単にできるようにしています。

現在、NGINXとPassengerでRails3.1を使用しています。

これまでのところ、すべてのアセットが現在のドメインと同様のドメイン(サブドメインではなく、別のドメイン...このように実際のドメインからのCookieが提供されない)を介して提供されるようにシステムを設定しましたリクエスト内で転送されます)。NGINXサーバーの構成は次のとおりです。

server {
listen 80;
server_name similarwebsite.com;
root /path/to/static/files;
}

server {
listen 80;
server_name website.com;
root /path/to/rails/files/public;
}

Railsの環境よりもアセット用に別の環境を用意する方がはるかに優れていると思います(いくつかの単純なアセットを提供するためだけに行われているすべてのRack抽象化は本当に好きではありません)。

私の質問は今も残っています、静的ファイルをthttpdのような別のHTTPサーバーに分割する必要がありますか?今のところ、両方とも同じマシンで実行されていますが、すべてのアセットはthttpdを介して配信され、すべてのレールはnginxを介して配信されます。thttpdインスタンスは、別のIPまたはポートで実行できます。これでもっと速くなるかどうか疑問に思っています。

何か案は?行き過ぎですか?

4

3 に答える 3

1

thttpdはCPUを軽くしている間は非常に高速であるため、静的ファイルに使用するとCPUの負荷を減らすことができると思います。ただし、HTTP接続の再起動にはもう少しコストがかかります。

于 2011-08-01T23:35:13.933 に答える
1

静的コンテンツを分離することをお勧めします。おそらく、さらに一歩進んでCDN(コンテンツ配信ネットワーク)を使用する必要があります。私はAkamaiとAmazonのCloudFrontを使用しましたが、それぞれのパフォーマンスに関連するコストがあります。安価な(無料!?)代替品もあります。詳細については、CDNのwikiページを参照してください:http://en.wikipedia.org/wiki/Content_delivery_network

于 2011-08-01T23:43:21.993 に答える
0

動的ファイルと静的ファイルの両方を提供するために1つのNGINXhttpサーバーを使用することに固執したことがわかりました。静的ファイルは別のドメインにあり、このソリューションは構成作業の量が最も少ない最良のソリューションでした。

于 2012-08-15T02:46:20.803 に答える