mod_compress:Lighttpd Gzip 压缩以提高下载和浏览速度
Gzip 是最流行和最有效的压缩方法。大多数现代网络浏览器都支持并接受压缩数据传输。与普通网页相比,使用 gzip 可以将响应时间缩短 60-70%。最终结果是拨号(它们还没有消失——我已使用拨号帐户进行备份)和宽带用户的网站体验更快。我已经写过关于使用 mod_deflate 加速 Apache 2.x 网络访问或下载的文章。
Lighttpd 1.4.xx 的 mod_compress
Lighttpd 1.4.xx 使用 mod_compress 支持 gzip 压缩。此模块可以减少网络负载并提高 Web 服务器的整体吞吐量。所有主要的 http 客户端都通过在 Accept-Encoding 标头中宣布压缩来支持压缩,如下所示:
Accept-Encoding: gzip, deflate
如果 lighttpd 在请求中看到此标头,它可以使用客户端列出的方法之一压缩响应。Web 服务器通过响应中的 Content-Encoding 标头将此情况通知 Web 客户端:
Content-Encoding: gzip
用于协商最合适的压缩方法。Lighttpd 支持 deflate、gzip 和 bzip2。
配置 mod_compress
打开 lighttpd.conf 文件:
# vi /etc/lighttpd/lighttpd.conf
将 mod_compress 附加到 server.modules 指令:
server.modules += ( "mod_compress" )
设置 compress.cache-dir 来存储所有缓存文件:
compress.cache-dir = "/tmp/lighttpdcompress/"
最后,定义要压缩的 mimetypes。以下将允许压缩 javascript、纯文本文件、css 文件、xml 文件等:
compress.filetype = ("text/plain","text/css", "text/xml", "text/javascript" )
保存并关闭文件。创建 /tmp/lighttpdcompress/ 文件:
重新启动 lighttpd:
# mkdir -p /tmp/lighttpdcompress/
# chown lighttpd:lighttpd /tmp/lighttpdcompress/
# /etc/init.d/lighttpd restart
如何为每个虚拟主机启用 mod_compress?
使用条件 $HTTP 主机指令,例如为 theos.in 打开压缩:
$HTTP["host"] =~ "theos\.in" { compress.cache-dir = "/var/www/cache/theos.in/" }
PHP 动态压缩
打开 php.in 文件:
# vi /etc/php.ini
要使用 PHP 压缩动态内容,请启用以下两个指令:
保存并关闭文件。重新启动 lighttpd:
zlib.output_compression = On
zlib.output_handler = On
# service lighttpd restart
清理缓存目录
您需要运行一个 shell 脚本来清除缓存目录。