Nginx harika bir sistem, ancak ince ayarlarla daha cok performans almaniz muhtemel, bu performans cogu zaman gozle gorulur derecede belirgin olabilir. Bunlardan biriside nginx in “–with-http_gzip_static_module” moduludur. Ne yapar bu diye sorarsaniz kisaca aciklayalim: sitenizdeki belirtmis oldugunuz dosya turlerini yada icerigini gzip seklinde sikistirarak %30 lara varan bir kucultme ile kullaniciya ulasma suresini dusurerek, iceriginizin daha hizli ve guvenli yoldan ulastirilmasini saglar.

Nginx kullanicilarinin bunu aktif etmesi gerekli. Oncelikle gerekli modulun oldugundan emin olun. ssh giris yaparak ekrana bunu yazin: nginx -V
cikan sonuclar icinde bunu goruyorsaniz bir sonraki adima gecebilirsiniz demektir: –with-http_gzip_static_module

Eger yoksa, diyecegim ama olmamasi imkansiz, cunku default olarak geliyor zaten :)

Daha onceki nginx makalelerimi okuyup uygulayan arkadaslar nginx.conf dosyalarindaki gzip alanini kaldirin.
Eskisi boyle idi, farklida olabilir ama gzip ile basliyorsa silin hepsini:

Asagidaki yeni gzip ayar kodunu sildiginiz yere ekleyin (yukaridaki ile degisin):

Bu kadar sonrasinda nginx e restart atalim:

Ve sonuc:

Eger farkli dosya turlerinide gzip seklinde islemesini istiyorsaniz gzip_types alanina turunu belirten kodu bosluk birakarak ekleyin. Bu turleri gormek icin /etc/nginx/mime.types dosyasina bakabilirsiniz. Sonrasinda restart atarak header check yapin, yani burayi kullanabilirsiniz test icin.

Buradaki dokumana binayen guncelleme maksatli ve bilmeyenler icin yardimci olacagini dusundugum icin bunu hazirladim. Zaten konudaki yardimci bash scriptinide guncelleyecegim birazdan.

Bu konuda Hakan isimli sadik takipcimizi ve yorumcumuzu dikkatimizden kacan cogu seyi, gzip olayinda oldugu gibi :) uyararak dokumanlarin daha iyi hale gelmesini sagladigi icin tesekkur ediyorum.

Sevgiler saygilar..

29 YORUMLAR

  1. Teşekkürler takibe devam benimde gzip için şöyle bir önerim olacak.

    gzip on;
    gzip_vary on;
    gzip_disable “MSIE [1-6].”;
    gzip_proxied any;
    gzip_http_version 1.0;
    gzip_min_length 1000;
    gzip_comp_level 2;
    gzip_buffers 16 8k;
    gzip_types text/plain text/xml text/css application/x-javascript application/xml application/xml+rss text/javascript application/atom+xml;

    • Bence gzip_comp_level 2 kismi 1 olsa daha iyi, cunku bu SIKISTIRmayi daha minumun duzeye cekebilir ancak acarkende milisaniye cinsinden zaman kaybettirdigini dusunuyorum. Tabi benim icin 1 den baska alternatif varsa oda 6 dir :)

      minumun gziplenecek dosya kismina limit koyarak iyi yaptin, hazirlarken fazla onemsemedim ama kucuk dosyalar icin islem yapilmasina gerek olmadigini dusunmeye basladim, cunku onlar zaten kucuk boyutda ve hiz acisindan sorun cikarmayacaklardir :)

  2. Bende kurulu değil sanırım, nasıl kurabilirim ?

    [email protected] [~]# nginx -V
    -bash: nginx: command not found

    • Beta surum anlatimi yapmadim hic simdiye kadar :) eger sorunsuz kurduysaniz olmasi gerekliydi. kurulumda bir hata yapmis olabilirsiniz. Onerim 2. anlattigim cpanel nginx kurulumunu uygulamaniz, daha basit ve daha kolaydir..

  3. Daha önce kurulu olan Development versiyon vardı ve onu kaldırmadan bu makaledekileri uyguladım. http://www.makaleci.com/centoscpanel-sunucularda-nginx-kurulumu-2.html ardından siteye ulaşamaz oldum saatlerdir.
    http://www.ahiska.net siteye girdiğimde ” Welcome to nginx! ” yazıyor ….
    http://www.ahiska.net/haber alt sayfalarda ise 404 Not Found hatası veriyor…
    public_html klasörünün chmod değerini 755 yaptım … Buna rağmen siteye ulaşamıyorum saatlerdir, Lütfen yardım…

    Ayrıca nginx.conf dosyasında
    ## Gzip modunu aktif etme / makaleci.com
    gzip on;
    gzip_static on;
    gzip_buffers 4 128k;
    gzip_comp_level 1;
    gzip_http_version 1.0;
    gzip_min_length 0;
    gzip_types text/plain application/x-javascript text/xml text/css;
    ##eger farkli dosya turlerinide gzip seklinde islemesini istiyorsaniz ; dan once
    ##turunu belirten kodu bosluk birakarak ekleyin.
    ##Bu turleri gormek icin /etc/nginx/mime.types dosyasina bakabilirsiniz :)
    gzip_vary on;

    kodlarını kullandığım zaman, Aşağıdaki hatayı veriyor
    [email protected] [~]# /usr/local/nginx/sbin/nginx -t
    nginx: [emerg] unknown directive "gzip_static" in /usr/local/nginx/conf/nginx.conf:29
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

  4. Merhabalar,

    Sunucuda nginix yüklü test sitesinden baktığımda gzip aktif görünüyor fakat google pagespeed insights aracı ile test yaptırdığım zaman

    “Kaynakları gzip veya deflate ile sıkıştırmak, ağ üzerinden gönderilen bayt sayısını azaltabilir.” uyarısı alıyorum.

    Sorun nedir acaba ? zaten gzip aktif görünüyor bunu pagespeed insight neden anlamıyor :) ?

    • Apache taraflı gzip sıkıştırma işleminide uygulayarak denermisiniz:
      .htaccess dosyasina ekleyin:

  5. Merhabalar,

    Cevap için teşekkür ediyorum, fakat verdiğiniz kod ” internal server error ” a sebep oluyor site tamamen kapanıyor yani.

    Bu arada htacces ile ilgili olarak sıkıştırma yapılabilecek farklı kodlar da denedim ki zaten sunucuyu dün yeniden kurdum ondan önce nginix yoktu ve aldığım yedekte zaten apache sunucuda gzip aktif olarak çalışan kodlar mevcuttu.

    Nginix in compress_level nginix on falan şeklinde ayarlarının yapıldığı dosyayı inceledim hiç bir soru yok dediğim gibi zaten nginix test sitesinde aktif olduğuda görülüyor.

    Teşekkürler.

    • Apache de DEFLATE modulunun olmayisindan kaynaklanabilir. Aslinda sitenizi kontrol ettigimde bende goruyorum gzip’in aktif oldugunu: http://www.gidnetwork.com/tools/gzip-test.php

      Burdaki sayfadan yardim alabilirsiniz (kod kisimlarini) : http://stackoverflow.com/questions/12367858/how-can-i-get-apache-gzip-compression-to-work

      Konuyu takip ediyorum bilgi verirseniz memnun olurum, nginx calismalarini yayinlarken dikkate alip konu icinde yazarak okuyuculari bilgilendirmek isterim :)

    • Bu arada sitenizi kontrol ederken www. kullanin. Cunku yonlendirme varsa o zaman gzip olmadigini gosteriyor. Ornek sizin sitenize baktim gzip kontrol sayfasindan. www. olmadan kontrol ettigimde gzip aktif degil uyarisi veriyor. Ancak www. ile kontrol ettirirsem bu seferde gzip var uyarisi veriyor. buna gore google pagespeed kontrolu yaparken www. eklemeyi unutmayin..

      • İlginiz için teşekkür ediyorum Selçuk Bey,

        pagespeed de www ile deniyorum yine aynı.. Ben araştırıyorum bakalım heralde çözeriz bi şekilde :) Bu konuya sorunun nasıl çözüldüğünü yazarım.

        Teşekkürler…

          • Selçuk Merhaba,

            An itibari ile google page speed insights sıkıştırma aktif görüyor masa üstü hız 86 / 100 !

            Sorunu nasıl çözdük, valla dün den beri yapmadığımız kalmadı varnishler mi dersin phpfastcgi ler mi dersin internal server error 500 ler mi dersin :)

            Neyse aslında o kadar da basit bir şeymiş ki yapılması gereken. Öncelikle kısaca açıklayalım sunucu da zaten nginx ve gzip aktif site wordpress yönetim paneline /wp-admin e bakıyorsun pagespeed den sıkıştırma aktif görüyor sitenin anasayfasına bakıyorsun aktif edin diyor.

            Bir de bu arada wordpressle ilgili olarak ubuntu + nginx + varnish falan derken wordpress e özel bir dosya mı oluşturuyolarmış her domain için sonra tekrar onu yeniden eklemek falan gerikiyormuş adamlar ne yapmaya çalışmışlar harbiden hala bir anlam veremedim onla da baya uğraştım onunla da hiç ilgisi yok.. Türkçe forumların birinde de hatta anlatan birileri var konuyu.

            Neyse bizim sıkıntı sadece ve sadece

            gzip_types text/plain text/css application/javascript text/xml application/xml+rss;

            Sıkıştırılan dosya türü ile ilgiliymiş :) deliler gibi ingilizce makalelerin arasında gezip sunucuyu alt üst ederken sadece vatandaşın biri dosya tipini şunu sil şunu ekle demiş bi yaptık ki bi de baktım olmuş :)

            Neyse belki bu tarz bir sıkıntısı olan arkadaş olurda en azından bizim kadar uğraşmadan çözer belki.

            İyi günler

          • Cevap icin tesekkurler, bayagi ugrasmissiniz gordugum kadariyla. Ama konuda ben soz konusu bolumleri kod icinde yazmistim, acaba o kod da bir eksiklik mi var ?

            sadece bu asagiaki eklenmemis verdigim kodlarda

            Yakin zamanda yeni bir makale hazirlayacagim, soz konusu cevaplarinizida dikkate alacagim. Ayrica bu sefer iyice test edip sizi zor durumda birakmayacagim :)

            Geri donus ve cavap icin tesekkurler, kolay gelsin.

          • Bu konunun amaci ordaki kodlar ile gzip aktif etmekti :) cozum icin verdigin kodlar eklediklerimle ayni xml kismi haric :) Ama sorun cozuldu ya onemli olanda bu degilmi :)

            Saat konusunda zamanim olsa bakar yardimci olurdum ama suan icin cikmam gerekli, kolay gelsin tekrar :)

  6. Ben teşekkür ederim, fakat ben apache yani htaccess ile yapmadım sıkıştırmayı. Siz kodu verdiniz ama onu htaccess de denedik. Benim şu an eklediğim kod nginix.conf içindeki gzip ayarlarına eklenen bir kod. :)

    Bu arada bilmiyorum bilginiz var mı ama benim 2 tane küçük problemim kaldı onları da sorayım yardımcı olabilirseniz sevinirim :)

    1 – VPS ‘yi kurdum üzerine VestaCP kurdum, sonra bir tane site ekledim. Şimdi sunucu ip nuramı yazıp web sitesi gibi girmeye çalıştığımda ilk eklediğim site çıkıyor. Bu da maalesef müşterimin sitesi kendimize ait olan sitenin çıkmasını istiyorum.

    2 – Sunucunun saat ayarı yanlış. Php.ini ye default istanbul ekledim, ssh dan saati değiştirdim. Olmuyor yinede. Sunucuyu reboot ediyorum açıyorum bakıyorum saat doğru fakat VestaCP ye girip bakıyorum saat eski halini almış sunucuya tekrar bakıyorum sunucunun da saati tekrar bozulmuş oluyor.

    Bunun dışında bir sorun kalmadı sunucu ve siteler gerçekten hızlı çalışıyor ki 512 mb ram 1 çekirdek işlemcili bir vps.

    İlgi ve cevaplar için tekrar teşekkür ederim.

    • Verdigim kod yzi icindeki nginx konfigurasyon kodu hocam. Yani nginx de gzip aktif etmek icin kullanmaniz gereken kod du. daha once onu uygulayip denedinizmi acaba ?

      Sorulariniza gelince:
      1 – Ip adresine default bir site belirlemeniz gerekli. VestaCP den anlamam ama http.conf icine girerek bunu kendinizde yapabilirsiniz. Ip adresine ozel acilacak site ayarlari ve olunu belirleyebilirsiniz.
      2 – buyuk ihtimal sorun VestaCP dedir, onda bunun ile ilgili bir ayar yoksa php inide bununla ilgili bir alan var onu duzeltmeye calisin. Farkli bir etken olmadigi surece ise yarayacaktir. Yine olmazsa saati degistirme kodunu sitelerinize el ile eklemeniz gerekecek, yani saat’i degistiren kodu.

      • Hayır o kodu nginx de denemedim. Zaten benzeri bir kod yapısı mevcut olduğu için birebir kopyala yapıştır çok tercih etmedim aslında başından beri o yüzden bu kodu da direk olarak ekleyip bakmadım aslında. Ama yardımlarınız için teşekkür ediyorum şu an bir problem kalmadı saat konusunu da biraz daha uğraşıcaz default domain içinde http.conf u karıştırıyım bakalım :)

        Teşekkürler.

Bir Cevap Yazın