如何查看我的 apache 服务器是否使用 gzip 编译

如何查看我的 apache 服务器是否使用 gzip 编译

我知道我的网站没有发送经过 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

相关内容