Gzip Sıkıştırması Nedir Nasıl Yapılır?

 

Tasarlamış olduğunuz web sitelerinin boyutları yüksek olabilir ve bu nedenden dolayı web siteniz sandığınızdan geç açılıyor olabilir. Bu gibi durumlarda Gzip sıkıştırma çok işimize yarıyor olacak.

Gzip, bir sıkıştırma yöntemidir. Web tasarımı ile uğraşan kişilerin genelde kullanmış olduğu sıkıştırma yöntemidir. Gzip web sitenizin hızlı açılması için bandwidth (trafik) yükünün dengelenmesini sağlamaktadır. Linux alt yapılı bir çok web sitesi ziyaretçilerine daha hızlı yanıt vermek için Gzip Sıkıştırması kullanmaktadır.

Gzip sıkıştırması; Çok fazla trafik tüketen, ziyaret edilen ve belli bir gelişmiş seviyesine ulaşmış siteniz veya forumunuz var ise, gzip sıkıştırma yöntemi gerçekten web sitenizi biraz daha hızlandıracaktır. Hem trafik dengelenmesini sağlayarak, aşırı derecede trafik tüketiminin önüne geçecektir. 

Gzip Sıkıştırması Nedir Nasıl Yapılır?

Gzip Nasıl Yapılır?

Gzip, Linux alt yapısı kullanan tüm servislerde kullanılmaktadır. Gzip dosyaları sıkıştırarak, sitenizin daha hızlı açılmasına olanak sağlayacaktır. Sitenize ait “htaccess” dosyasına aşağıdaki kodları eklemeniz yeterli olacaktır;


mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

Apache web sunucularında Gzip sıkıştırma

Yukarıdaki kod Apache’de çalışacaktır. Ancak bazı servisler üzerinde yukarıdaki kod çalışmamaktadır. Bu gibi durumda .htaccess dosyanız’dan kaldırın ve bunun yerine aşağıdaki kodu kullanabilirsiniz. 

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Yukarıdaki kod Apache’de çalışacaktır. Ancak bazı servisler üzerinde yukarıdaki kod çalışmamaktadır. Bu gibi durumda .htaccess dosyanız’dan kaldırın ve bunun yerine aşağıdaki kodu kullanabilirsiniz. 

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

Header set Connection keep-alive

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
## EXPIRES CACHING ##

NGINX web sunucularında Gzip sıkıştırma

NGINX’te sıkıştırmayı etkinleştirmek için config dosyasına aşağıdaki kodu eklemeniz gerekir.

gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

# Disable for IE < 6 because there are some known problems
gzip_disable "MSIE [1-6].(?!.*SV1)";

# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;