転送時のファイルサイズを小さくする
前回の続きです。以降、「転送時のファイルサイズを小さくする」について書きます。
実現方針
apathce のフィルタを使ってクライアントへ送られる前にコンテンツを圧縮します。実は以前、htmlファイルを対象に圧縮する設定をしましたが、その発展系として、CSS・JavaScriptも圧縮対象とします。
参考サイト
設定
mod_filterモジュールを有効化
# a2enmod Which module would you like to enable? Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dav_svn dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation php5 proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias Module name? filter Module filter installed; run /etc/init.d/apache2 force-reload to enable.
apacheを再起動
# /etc/init.d/apache2 restart * Restarting web server apache2 [ OK ]
mod_filterモジュールが有効であることを確認
# /usr/sbin/apache2ctl -M Loaded Modules: (snip) filter_module (shared) (snip) Syntax OK
設定ファイルの編集(いじったら、apacheの再起動を忘れないこと)
vi /etc/apache2/mods-available/deflate.conf 1 <Location /> 2 # Netscape 4.x has some problems... 3 BrowserMatch ^Mozilla/4 gzip-only-text/html 4 5 # Netscape 4.06-4.08 have some more problems 6 BrowserMatch ^Mozilla/4\.0[678] no-gzip 7 8 # MSIE masquerades as Netscape, but it is fine 9 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 10 11 # ここからフィルター設定 12 FilterDeclare Compression CONTENT_SET 13 FilterProvider Compression DEFLATE Content-Type $text/plain 14 FilterProvider Compression DEFLATE Content-Type $text/css 15 FilterProvider Compression DEFLATE Content-Type $application/xhtml 16 FilterProvider Compression DEFLATE Content-Type $application/xml 17 FilterProvider Compression DEFLATE Content-Type $application/xhtml+xml 18 FilterProvider Compression DEFLATE Content-Type $application/rss+xml 19 FilterProvider Compression DEFLATE Content-Type $application/atom+xml 20 FilterProvider Compression DEFLATE Content-Type $application/x-javascript 21 FilterProvider Compression DEFLATE Content-Type $image/svg+xml 22 FilterChain Compression 23 # ここまでフィルター設定 24 25 # Don't append Vary heder for specific files 26 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|lzh|exe)$ dont-vary 27 28 # Make sure proxies don't deliver the wrong content 29 # Header append Vary User-Agent env=!dont-vary 30 # Header append Vary Accept-Encoding env=!dont-vary 31 </Location>
確認
設定前後で転送時のファイルサイズを比較すると、以下のとおり。
状態 | HTML | CSS | JavaScript |
---|---|---|---|
before(byte) | 838 | 1,335 | 1,170 |
after(byte) | 458 | 474 | 546 |