如何在 apache2 下启用 HTTP 压缩?

如何在 apache2 下启用 HTTP 压缩?

如何配置 Apache2 来支持HTTP 压缩

答案1

这需要deflate模块,因此请启用它。在 Ubuntu(我正在使用)下,该命令是a2enmod deflate

然后,使用SetOutputFilter你的ProxyDirectory指令:

<ProxyMatch "^http://localhost:8080/($|app/)">
    Order allow,deny
    Allow from all
    SetOutputFilter Deflate
</ProxyMatch>

或者:

<Directory /var/www>
    Order allow,deny
    Allow from all
    SetOutputFilter Deflate
</Directory>

答案2

作为您链接到的维基百科条目的注释,您可以使用mod_deflate或者mod_gzip. 请参阅此处使用 mod_gzip 的示例,这就是我所使用的。

答案3

<VirtualHost *:80>
   ...     
   DeflateBufferSize 16384
   DeflateCompressionLevel 5
   DeflateMemLevel 9
   DeflateWindowSize 15

   <Location / >
      AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
   </Location>
   ...
</VirtualHost>

答案4

根据您的部署,将其作为 mod_deflate.conf 放置在 conf.d 或 extras 文件夹中:

# Enable mod_deflate (gzip)
    SetOutputFilter DEFLATE
    # Do not attempt to compress the following extensions
    SetEnvIfNoCase Request_URI \
    \.(?:gif|jpe?g|png|swf|flv|zip|gz|tar|mp3|mp4|m4v)$ no-gzip dont-vary

重新启动 apache,mod_deflate 将出现在所有与上述正则表达式不匹配的扩展上,这会减少总体 CPU 开销,因为它可以防止 mod_deflate 尝试压缩您几乎看不到或根本看不到压缩的格式(因为它已经被压缩了)。

要查看具体压缩的内容以及压缩率,请将其放在

# Deflate accurate logging
    DeflateFilterNote Input instream
    DeflateFilterNote Output outstream
    DeflateFilterNote Ratio ratio
    LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
    CustomLog logs/yourdomain_deflate.log

相关内容