我知道我的网站没有发送经过 gzip 压缩的数据。我使用类似网站进行了测试http://www.gidnetwork.com/tools/gzip-test.php
现在我想知道 apache 是否使用 gzip 模块编译。在输入提供压缩内容的代码之前,我想测试我的 apache 服务器上是否启用了 gzip,或者我是否需要构建它。我该如何测试。我如何放置一个将显示在 apache 日志中的调试语句。我相信我可以做这样的事情,但不确定。
<IfModule mod_gzip.c>
log('apache is configured with gzip. no need to install it')
</IfModule>
什么代码可以代替日志,以便我可以在 apache 日志中看到消息。此外,我该如何编写 else 语句,以便无论如何都能收到消息。
这是我的 apache.conf
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Include all the user configurations:
Include /etc/apache2/httpd.conf
# Include ports listing
Include /etc/apache2/ports.conf
这是 mods-enabled 目录中的项目列表
root@me:/etc/apache2/mods-enabled# ls
alias.conf authn_file.load authz_host.load autoindex.load dir.load mime.load setenvif.conf status.load
alias.load authz_default.load authz_user.load cgi.load env.load negotiation.conf setenvif.load
auth_basic.load authz_groupfile.load autoindex.conf dir.conf mime.conf negotiation.load status.conf
答案1
尝试从命令行运行:
apache2 -l
这应该会给你 apache 内置模块的列表。更可能的是,你会将 gzip 作为附加的可加载模块调用mod_deflate.so
- 检查你的任何 .load 是否加载了这个。
如果你使用 debian'ish 发行版 [ 看起来是这样 ] 只需将 deflate.load 和 deflate.conf 从 mods-available 符号链接到 mods-enabled:
cd /etc/apache2/mods-enabled/
ln -s ../mods-available/deflate.load
ln -s ../mods-available/deflate.conf
并重新加载 apache2
/etc/init.d/apache2 reload
答案2
检查输出:
httpd -M 2<&1 | grep gzip
?
答案3
我假设是 Apache 2.....仅仅因为 deflate 模块存在,并不一定意味着输出压缩会发生。需要在希望输出被 gzip 压缩的地方添加指令:
SetOutputFilter DEFLATE
还有其他选项,以便只有某些类型的文件也能被 gzip 压缩。
我建议你可以看一下 deflate 模块描述http://httpd.apache.org。