web-dev-qa-db-ja.com

IIS 7.5静的コンテンツのみを提供するサイトの最適化

Stack Exchangeサイトが使用する http://sstatic.net/ サイトと同様に、Webアプリケーションの静的コンテンツを提供することを目的としたCookieのないドメインをセットアップしようとしています。

私の質問は、IIS 7.5のようなドメインのセットアップに対してどのような最適化を行うことができますか?たとえば、それは静的コンテンツの提供以外には一切責任を負わないため、ASP.NET統合を無効にします。このサイトの良い動きになりますか?

IIS 7.5を使用してこのようなサイトを設定することについての提案や参照は、大歓迎です。

編集

明確にするために、これはサーバー上の唯一のサイトではないため、推奨される最適化はサーバーレベルの構成ではなく、サイトレベルをターゲットにする必要があります。

21
DanP

これにはいくつかの考慮事項があり、一部はIIS(HTTP圧縮、ヘッダーキャッシュのキャッシュ))で処理され、一部はビルドプロセス中/展開前に処理されます(JavaScriptやCSSファイルなど)連結と空白の縮小)。

そのため、ビルドとリリースの方法に依存するものもあるので、1つの回答で完全なランダウンを提供するのは少し難しいです。大まかな手順:

  • あなたのウェブアプリケーションに結び付けられていない新しいドメインを使用しているおかげで、サイトは「クッキーレス」です。 (f.x. .NETアプリケーションコードを使用して)ドメインにCookieを設定していないため、「Cookieなし」になります。

  • 絶対に絶対に静的テキストコンテンツのHTTP圧縮を有効にする JavaScriptやCSSなど。

  • 私は最高のIIS管理者ではありませんが、私の知る限りでは、デフォルトのIISに関連付けられているコンポーネントだけが basic 「Webサーバー(IIS)」サーバーの役割

  • 絶対に静的コンテンツの長いキャッシュヘッダー を有効にする必要があります。一般的な推奨値は31日ですが、それより高くまたは低く設定できます。長いキャッシュヘッダーで静的コンテンツを提供する場合、古いキャッシュコンテンツがクライアントで再利用されないように、ファイルを変更する場合はURLを変更する必要があります。

  • HTTPキープアライブを有効にする必要があります(ヘッダーをキャッシュするのと同じドキュメント)。

これに加えて、 JavascriptとCSSを圧縮する空白PNGを理想的に圧縮する などの導入前のタスクがあります。これは開発ツールであり、ビルドサイクルは、続行方法の決定に役立ちます。

完了したら、 YSlowが有効な静的サーバー からいくつかのファイルをダウンロードしてみてください。 "Classic V2"ルールセット が作業に最大の影響を与えるので、このYSlowルールセットに対してスコアを確認することをお勧めします。

「クラシックV2」ルールセットのうち、これらのルールは静的サーバーに適切に適用されますIISインスタンスとコンテンツ:

3. Add an Expires or a Cache-Control Header
4. Gzip Components
10. Minify JavaScript and CSS
11. Avoid Redirects
13. Configure ETags
19. Use Cookie-Free Domains for Components
22. Make favicon.ico Small and Cacheable
18
Jesper M

ここで非常に興味深い記事 があり、静的ファイルを提供するためにIISを使用しています。主にIISファイルの調整に集中しています。ディスクアクティビティを制限するための設定のキャッシュ(これが彼のボトルネックでした)パフォーマンスが20倍向上したと彼は言います。

9
UpTheCreek