6

私はApache 2.2でmod_deflateを使用しており、圧縮レベルは 9 に設定されています。YSlow (v2)の推奨事項に基づいて、サイトのすべての可能な側面を微調整し、全体的に A グレード (合計スコア: 91) および以下を除くすべてのカテゴリーについて:

  • HTTP リクエストの数を減らします (グレード C - 画像のさらなる統合に取り組んでいます)
  • コンポーネントを gzip で圧縮 ( Grade F )

YSlow はまだ F を返し、CSS および JS ファイルで gzip を使用するように指示します。YSlow レポートのスクリーンショットを次に示します (プライバシーのために、ドメインはぼかしてあります)YSlow レポートのスクリーンショット

ただし、GIDNetwork GZIP Testのようなサイトでは、完全な圧縮が報告されています。

私の .htaccess の mod_deflate セクション

# Below uses mod_deflate to compress text files. Never compress binary files.
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE

# compress content with type html, text, js, and css
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript text/xml image/svg+xml application/javascript application/x-javascript application/atom_xml application/rss+xml application/xml application/xhtml+xml application/x-httpd-php application/x-httpd-fastphp

# Properly handle old browsers that do not support compression  
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Explicitly exclude binary files from compression just in case
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary

# properly handle requests coming from behind proxies
Header append Vary User-Agent env=!dont-vary
</IfModule>

誰かが私が間違っているところを指摘できますか?

ありがとう、m^e

4

3 に答える 3

4

mod_deflate が正しく構成されていない可能性があります。

典型的な mod_deflate 構成は、ユーザー エージェント文字列に基づいて特定のブラウザーを除外する場合があり、サーバーに登録されている MIME タイプによって識別される特定のファイル タイプのみを圧縮するように構成する場合があります。

HTML、CSS、および Javascript ファイルはすべて圧縮する必要がありますが、PNG、GIF、または JPEG ファイルは圧縮しないでください。また、Netscape 4 にはバグがあり、考慮したくない場合があります。ドキュメントのサンプル コードを使用してみてください。

<Location />
    # Insert filter
    SetOutputFilter DEFLATE

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    # Don't compress images
    SetEnvIfNoCase Request_URI \
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
</Location> 

投稿した GIDZipTest GZIP テストでは、関連する Javascript および CSS ファイルはテストされませんが、YSlow ではテストされることに注意してください。GIDZipTest GZIP テストでは、これらを個別にテストする必要があります。

ISP がキャッシング プロキシを使用している可能性もあると思います (透過的であろうとなかろうと)。これは Accept-Encoding: ヘッダーをマングリングまたは削除しています。これを原因として除外するには、ISP の外部から誰かにテストしてもらうことができます。

注意すべきもう 1 つの点は、gzip を使用してファイルを圧縮する場合、帯域幅を CPU 時間と交換していることです。より低い圧縮強度を超えると、帯域幅の節約による利益は減少しますが、必要な CPU 時間は大幅に増加します。残念なことに、圧縮強度が 9 と高い場合、ほぼ確実に、ほとんど圧縮を改善しないために CPU 時間を浪費しすぎています。強度 1 を使用することを常にお勧めします。

于 2009-06-10T06:56:57.717 に答える
2

ASP.NET で同じことを行うには、この記事をお読みください - http://coder.informisk.com/post/2010/01/10/Get-Grade-A-in-YSlow.aspx

于 2010-01-10T14:38:34.063 に答える
1

このウェブサイトhttp://www.rubyrobot.org/article/5-tips-for-faster-loading-web-sites は、 AddOutputFilterByType が .htaccess では機能しないことを教えてくれました

于 2010-03-23T15:58:49.230 に答える