Nginx ve Gzip Modülünü Kullanarak Web Sitelerini Nasıl Hızlandıracağınızı Öğrenin


Dünyanın her yerinde önemli İnternet hızlarının mevcut olduğu bir dönemde bile, web sitesi yükleme sürelerini optimize etmeye yönelik her türlü çaba memnuniyetle karşılanır.

Bu yazımızda sıkıştırma yoluyla dosya boyutlarını küçülterek aktarım hızlarını artırmanın bir yöntemini tartışacağız. Bu yaklaşım, süreçte kullanılan bant genişliği miktarını da azalttığı ve bunun için ödeme yapan web sitesi sahibi için maliyeti daha ucuz hale getirdiği için ekstra bir fayda sağlar.

Yukarıdaki paragrafta belirtilen amacı gerçekleştirmek için bu makalede Nginx'i ve onun yerleşik gzip modülünü kullanacağız. Resmi belgelerde belirtildiği gibi bu modül, iyi bilinen gzip sıkıştırma yöntemini kullanarak yanıtları sıkıştıran bir filtredir. Bu, iletilen verinin boyutunun yarı yarıya, hatta daha fazla sıkıştırılmasını sağlar.

Önerilen Okuma: Nginx Web Sitelerinin Güvenliğini Sağlamak, Güçlendirmek ve Performansını Artırmak için En İyi Kılavuz

Bu yazının sonuna ulaştığınızda, web sitelerinize ve uygulamalarınıza hizmet vermek için Nginx'i kullanmayı düşünmek için bir nedeniniz daha olacak.

Nginx Web Sunucusunun Kurulumu

Nginx tüm önemli modern dağıtımlarda mevcuttur. Ancak bu makale için CentOS 7 sanal makinesini (IP 192.168.0.29) kullanacağız.

Aşağıda verilen talimatlar, diğer dağıtımlarda da (eğer varsa) çok az değişiklikle çalışacaktır. VM'nizin yeni bir yükleme olduğu varsayılır; aksi halde, makinenizde çalışan başka bir web sunucusunun (Apache gibi) olmadığından emin olmanız gerekir.

Nginx'i gerekli bağımlılıklarıyla birlikte yüklemek için aşağıdaki komutu kullanın:


----------- On CentOS/RHEL 7 and Fedora 22-24 ----------- 
yum update && yum install nginx

----------- On Debian and Ubuntu Distributions ----------- 
apt update && apt install nginx

Kurulumun başarıyla tamamlandığını ve Nginx'in dosya sunabildiğini doğrulamak için web sunucusunu başlatın:


systemctl start nginx
systemctl enable nginx

ve ardından bir web tarayıcısı açın ve http://192.168.0.29 adresine gidin (192.168.0.29'u sunucunuzun IP adresi veya ana bilgisayar adı ile değiştirmeyi unutmayın) . Hoş Geldiniz sayfasını görmelisiniz:

Bazı dosya türlerinin diğerlerinden daha iyi sıkıştırılabileceğini aklımızda tutmalıyız. Düz metin dosyaları (HTML, CSS ve JavaScript dosyaları gibi) çok iyi sıkıştırılırken diğerleri (.iso) dosyalar, tarball'lar ve resimler (birkaç örnek) doğası gereği zaten sıkıştırılmış olduklarından bunu yapmazlar.

Bu nedenle, Nginx ve gzip kombinasyonunun, birincisinin aktarım hızlarını artırmamıza izin vermesi beklenirken, ikincisi çok az gelişme gösterebilir veya hiç gelişme göstermeyebilir. Tümü.

gzip modülü etkinleştirildiğinde, HTML dosyalarının HER ZAMAN sıkıştırıldığını, ancak diğer dosya türlerinin yaygın olarak bulunduğunu unutmamak da önemlidir. web siteleri ve uygulamalar (yani CSS ve JavaScript) değildir.

Nginx Web Sitesi Hızlarını gzip Modülü OLMADAN Test Etme

Başlamak için, HTML, CSS ve JavaScript dosyalarının harika bir kombinasyonu olan eksiksiz bir Bootstrap şablonunu indirelim.

Sıkıştırılmış dosyayı indirdikten sonra, onu sunucu bloğumuzun kök dizinine açacağız (bunun, Apache sanal ana bilgisayar bildirimindeki DocumentRoot yönergesinin Nginx eşdeğeri olduğunu unutmayın) ):


cd /var/www/html
wget https://github.com/BlackrockDigital/startbootstrap-creative/archive/gh-pages.zip
unzip -a gh-pages.zip
mv startbootstrap-creative-gh-pages tecmint

/var/www/html/tecmint içinde aşağıdaki dizin yapısına sahip olmalısınız:


ls -l /var/www/html/tecmint

Şimdi http://192.168.0.29/tecmint adresine gidin ve sayfanın doğru şekilde yüklendiğinden emin olun. Çoğu modern tarayıcı bir dizi geliştirici aracı içerir. Firefox'ta Araçlar → Web Geliştirici menüsünden açabilirsiniz.

Bilgisayarımızla yerel ağ ve İnternet arasında gerçekleşen tüm ağ isteklerini izlememize olanak tanıyan alt menüsüyle özellikle ilgileniyoruz.

Önerilen Okuma: Nginx Performansını 10 Kat'a Kadar Hızlandırmak için Mod_Pagespeed'i Yükleyin

Geliştirici araçlarında menüsünü açmanın kısayolu Ctrl + Shift + Q'dur. Açmak için bu tuş kombinasyonuna basın veya menü çubuğunu kullanın.

HTML, CSS ve JavaScript dosyalarının aktarımını incelemekle ilgilendiğimiz için alttaki butonlara tıklayın ve sayfayı yenileyin. Ana ekranda tüm HTML, CSS ve JavaScript dosyalarının aktarımının ayrıntılarını göreceksiniz:

Boyut sütununun sağında (bireysel dosya boyutlarını gösterir), ayrı aktarım zamanlarını göreceksiniz. Ayrıca Zamanlamalar sekmesinde daha fazla ayrıntı görmek için herhangi bir dosyaya çift tıklayabilirsiniz.

gzip modülünü etkinleştirdikten sonra bunları aynı aktarımla karşılaştırabilmeniz için yukarıdaki resimde gösterilen zamanlamaları not ettiğinizden emin olun.

Nginx'te gzip Modülünü Etkinleştirme ve Yapılandırma

gzip modülünü etkinleştirmek ve yapılandırmak için /etc/nginx/nginx.conf dosyasını açın, aşağıdaki resimde gösterildiği gibi ana sunucu bloğunu bulun ve aşağıdakileri ekleyin veya değiştirin satırlar (sondaki noktalı virgülü unutmayın, aksi takdirde Nginx daha sonra yeniden başlatırken bir hata mesajı döndürecektir!)


root     	/var/www/html;
gzip on;
gzip_types text/plain image/jpeg image/png text/css text/javascript;

gzip yönergesi gzip modülünü açar veya kapatır, gzip_types ise modülün işlemesi gereken tüm MIME türlerini listelemek için kullanılır.

MIME türleri hakkında daha fazla bilgi edinmek ve mevcut türleri görüntülemek için Basics_of_HTTP_MIME_types sayfasına gidin.

Gzip Sıkıştırma Modülüyle Nginx Web Sitesi Hızlarını Test Etme

Yukarıdaki adımları tamamladıktan sonra Nginx'i yeniden başlatalım ve Ctrl + F5 tuşlarına basarak sayfayı yeniden yükleyelim (bu yine Firefox'ta çalışır, dolayısıyla farklı bir tarayıcı kullanıyorsanız, önbelleği geçersiz kılmak için önce ilgili belgelere bakın) ve aktarım sürelerine bakalım:


systemctl restart nginx

Ağ istekleri sekmesi bazı önemli iyileştirmeler gösteriyor. Kendiniz görmek için zamanlamaları karşılaştırın; bunun bilgisayarımız ile 192.168.0.29 arasındaki aktarımlar olduğunu unutmayın (Google sunucuları ile CDN'ler arasındaki aktarımlar bizim kavrayışımızın dışındadır):

Örnek olarak gzip etkinleştirmeden önce/sonra aşağıdaki dosya aktarım örneklerini ele alalım. Zamanlamalar milisaniye cinsinden verilir:

  1. index.html (listenin en üstünde /tecmint/ ile temsil edilir): 15/4
  2. Creative.min.css: 18/8
  3. jquery.min.js: 17/7

Bu, Nginx'i daha da çok sevmenize neden olmuyor mu? Bana kalırsa öyle!

Önerilen Okuma: Apache Web Sunucunuzun Performansını Artıracak 5 İpucu

Özet

Bu yazımızda Nginx gzip modülünü kullanarak dosya aktarımlarını hızlandırabileceğinizi gösterdik. Gzip modülünün resmi belgeleri, göz atmak isteyebileceğiniz diğer yapılandırma yönergelerini listeler.

Ek olarak, Mozilla Geliştirici Ağı web sitesinde, bir ağ isteğinde perde arkasında neler olup bittiğini anlamak için bu aracın nasıl kullanılacağını açıklayan Ağ İzleyicisi hakkında bir giriş bulunmaktadır.

Her zaman olduğu gibi, bu makaleyle ilgili herhangi bir sorunuz varsa aşağıdaki yorum formunu kullanmaktan çekinmeyin. Sizden haber almak için her zaman sabırsızlanıyoruz!