
YSlowでウェブサイトのパフォーマンスを改善: gzip圧縮を有効にする
gzip圧縮を利用して転送量を削減する
「Gzip components」の項目はコンポーネントの送信にgzip圧縮機能を利用しているかどうかを判定している。ウェブサーバとウェブブラウザの双方がgzip圧縮に対応していれば、サーバ側でコンポーネントを圧縮し、ブラウザ側で自動的に解凍することで転送量を削減することができる。特にテキスト形式のファイル送信には効果的で、本稿の例でもHTML、CSS、JavaScriptの各ファイルが対象として挙げられていた。
Apache HTTP Serverの場合はmod_deflateモジュールを利用することで圧縮転送を有効にすることができる。まずhttpd.confにリスト1の設定を追加してmod_deflateモジュールをロードする。
リスト1 httpd.confにmod_deflateモジュールをロードする設定を追加
LoadModule deflate_module modules/mod_deflate.so
その上で圧縮対象に関する設定を記述する。リスト2は画像以外のファイルを全て圧縮する設定である。
リスト2 画像以外のファイルを圧縮転送する設定例
SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary Header append Vary User-Agent env=!dont-vary
最初の「SetOutputFilter DEFLATE」で圧縮を有効にし、「BrowserMatch」の行で対象となるブラウザを指定している。設定内容の詳細はApacheのマニュアルを参照して欲しい。
上記の修正を行った結果、YSlowによる評価は図1のように向上した。gzipを有効にした影響で13番のETagについてもA評価に上がっている。ETagについては複数サーバで負荷分散している場合には無効化した方が良いが、今回は特に影響しないので無視してしまっても問題はない。

キャッシュ状況は図2のようになっており、修正前のグラフと比べるとトータルサイズが大幅に減少していることがわかる。

このようにYSlowをうまく使えば効果的なパフォーマンスの改善を行うことができる。もちろんYSlowの評価だけ鵜呑みにするのではなく状況に応じた対策を行うことが重要だが、高パフォーマンスなサイトを目指す指針としては極めて利用価値の高いツールと言えるだろう。
- 新着記事
- 特集
- ブログ
- 企画特集
-
連載!プロが語るストレージ戦略
-
常識を疑え!
-
いままさに社会にとっての転換点
-
連載!プロが語るストレージ戦略
-
モバイルデバイスもターゲットに!
-
明日からではもう遅い?!
-
講演の見どころを紹介
-
ビッグデータ最前線!
-
さあ、クラウドで解決しよう。
-
中小企業でのひとり情シスIT運用術
-
デジタルを当たり前と言えるか?
-
Kubernetesの認定制度が開始
-
特集:IT最適化への道
-
DXができない企業が滅びる理由
-
漫画で解説!運用管理のコツ
-
利便性とセキュリティの両立
-
連載!プロが語るストレージ戦略
-
セキュリティの今を知る
-
幸せ?不幸?ひとり情シス座談会
-
次の一手はこれだ!
-
内部不正や不注意をどう防ぐ?
-
現場主導の業務変革のポイント
-
話題のセキュリティ事故体験ゲーム
-
ゼロトラストに不可欠なID管理
-
企業DXのキモはクラウドにあり