it-swarm-ja.tech

Apache2でHTTP圧縮を有効にするにはどうすればよいですか?

HTTP圧縮 をサポートするようにApache2を設定するにはどうすればよいですか?

8
Sietse

これにはdeflateモジュールが必要なので、それを有効にします。 Ubuntu(私が使用しているもの)では、そのためのコマンドはa2enmod deflate

次に、SetOutputFilterまたはProxyディレクティブでDirectoryを使用します。

<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>
8
Sietse

ノートにリンクするウィキペディアのエントリとして、mod_deflateまたはmod_gzipを使用できます。 )。ここで mod_gzipの例 を参照してください。これは私が使用しているものです。

4
user1797
<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>
1
Dave Cheney

デプロイに応じて、これをconf.dまたはextrasフォルダーにmod_deflate.confとして配置します。

# 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が発生します。これにより、mod_deflateが圧縮をほとんどまたはまったく表示しない形式を圧縮しようとするのを防ぐため、全体的なCPUオーバーヘッドが削減されます(既に圧縮されているため)。

正確に何が圧縮されているか、および圧縮率を確認するには、これを

# 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
1
Oneiroi