Bagaimana cara mengkonfigurasi Apache2 untuk mendukung kompresi HTTP ?
Bagaimana cara mengkonfigurasi Apache2 untuk mendukung kompresi HTTP ?
Jawaban:
Ini membutuhkan deflate
modul, jadi aktifkan itu. Di bawah Ubuntu (yang saya gunakan), perintah untuk itu adalah a2enmod deflate
.
Kemudian, gunakan SetOutputFilter
pada arahan Anda Proxy
atau Directory
:
<ProxyMatch "^http://localhost:8080/($|app/)">
Order allow,deny
Allow from all
SetOutputFilter Deflate
</ProxyMatch>
Atau:
<Directory /var/www>
Order allow,deny
Allow from all
SetOutputFilter Deflate
</Directory>
Sebagai entri Wikipedia yang Anda tautkan ke catatan, Anda dapat menggunakan mod_deflate atau mod_gzip . Lihat contoh di sini dengan mod_gzip , yang saya gunakan.
<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>
Bergantung pada penempatan Anda, ini dalam folder conf.d atau ekstra sebagai 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
Restart apache dan mod_deflate akan terjadi pada semua ekstensi yang tidak cocok dengan regex di atas, ini mengurangi overhead CPU keseluruhan karena mencegah mod_deflate dari mencoba mengompres format yang Anda akan melihat sedikit atau tidak ada kompresi untuk (karena sudah dikompresi).
Untuk melihat apa yang sedang dikompresi, dan rasio kompresi, letakkan ini di komputer Anda
# 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