4 Ekim 2004 tarihinde geliştiricisi Igor Sysoev tarafından resmi olarak piyasaya sürülen ve C10k sorununu çözmek için oluşturulmuş açık kaynak kodlu bir web sunucusu yazılımı olan Nginx; ortaya çıktığı günlerden beri gelişerek, günümüzde web sunucuları bilinen tüm internet sitelerinin yüzde 33.9’u tarafından kullanılmakta olan oldukça önemli bir yazılımdır. 

Daha az CPU kullanarak daha fazla performans göstermesi açısından günümüzde en yaygın web hosting yazılımlardan birisi olan Nginx ile alakalı olarak, bu popülerliğinden ve özelliklerinden kaynaklı olarak insanların kafasında pek çok soru işareti mevcuttur. 

Siz okuyucularımız için ayrıntılı bir şekilde araştırarak elde ettiğimiz bilgilerden derleyerek kaleme almış olduğumuz bu yazının devamında; Nginx’in ne olduğu, ne işe yaradığı, özellikleri ve sağladığı avantajlar ile dezavantajlar hakkında sizleri bilgilendireceğiz.  

 

Nginx Nedir?

Bu soruya kısaca bir şekilde cevap vermemiz gerekirse; Nginx’in, mümkün olduğunca düşük hafıza kullanımına ve yüksek bir performansa odaklanarak tasarlanmış olan açık kaynak kodlu bir web sunucusu yazılımı olduğunu söylemek mümkündür. 

2002 yılında Igor Sysoev tarafından yazılmaya başlanmış ve 4 Ekim 2004 tarihinde resmi olarak yayınlanmış (BSD-like lisansı ile) bir web sunucusu yazılımı olan Nginx; Microsoft Windows, Mac OS X, Linux, BSD türevleri ve Unix gibi işletim sistemleri üzerinde çalıştırılabilir. 

 

Nginx Ne İşe Yarar?

Nginx’in; ana kullanım amacı, hem bir web sunucusu hem de ters proxy olarak kullanılmasıdır. 

Bu amaç kapsamında; yazılım tarafından kullanıcılara belirli bir bağlantıya bir işlem atanamamasına izin verilmez, ancak bir ağ içinde bir sürü bağlantı arasında kolayca paylaşılabilecek bir işlem havuzunun oluşturulmasına imkan tanınır.  

Bu süreç kapsamında bir istek yapılması üzerine, süreç için bir kaynak sağlanır ve bu da kapsamlı bağlantıların kolayca yönetilmesini sağlayacak daha verimli bir kaynak kullanımı ile sonuçlanmaktadır.  

Nginx; bu amaca ek olarak, veri merkezleri ile dış ağ arasında güvenli bir bağlantının kurulmasını sağlamak, birden fazla farklı yük paylaşım mekanizmasının kullanılmasına imkan tanıyan bir HTTP yük dengeleyici (load balancer), bir ters vekil sunucusu ve bir HTTP önbelleği olmak gibi amaçlara da hizmet etmektedir. 

 

Nginx Özellikleri

Apache gibi muadillerine kıyasla daha az CPU kullanmakta olan Nginx; bunun gibi çeşitli özellikleri sayesinde, yüksek kullanıcı trafiği ve yoğun istek girişi olan web siteleri tarafından yoğun bir biçimde tercih edilmekte olan bir web sunucu yazılımıdır. Peki, bu özellikler hangileridir? Gelin ve bir göz atalım:  

 

1. Reverse Proxy (Ters Vekil Sunucu) Özelliği 

Gelen isteklerin sunucuya iletilmesini ve buradan dönen cevapları da istemciye iletilmesini sağlayan bu özellik; aynı zamanda da sunucuların varlığını ve özelliklerini dışarıya karşı gizleyerek onları, web tabanlı saldırılara karşı koruyabilir. 


2. Load Balancing (Yük Dengeleme) Özelliği 

Nginx’in bu özelliği, server üzerinde olan fazla yüklerin diğer serverlara dağıtılarak, işlemlerin daha çok makinede ve daha kısa sürede çözülmesini mümkün kılmaktadır.  

Nginx’in yukarıda verilen iki ana özelliğine ek olarak; Virtual Host (Sanal sunucu), otomatik indeksleme, e-postalar ile http için vekil sunucusu, otomatik indeksleme ve hem indeks hem de statik dosyaların sunumu gibi bir takım ek özellikleri de mevcuttur.  

 

Nginx Avantajları

Nginx’in sağladığı avantajlara gelecek olursak; bu alanda en başlıca avantajın, piyasadaki diğer muadillerine kıyasla daha tutarlı bir yazılı kod tabanına sahip olması olduğunu söylemek mümkündür.  

Bu sayede daha az bellek ve kaynak kullanmakta olan yazılım; ayrıca, olay tabanlıdır ve birden çok eşzamanlı bağlantının (potansiyel olarak binlerce) aynı anda yönetilmesine imkan vermektedir. 

Son olarak; kullanıldığı web sitesini daha hızlı bir hale getiren Nginx, buna ek olarak söz konusu sitenin daha iyi bir Google sıralaması elde etmesine de yardımcı olmaktadır.  

 

Nginx Dezavantajları

Bir web sunucusu yazılımı olarak Nginx’in başlıca dezavantajı; Apache’den daha yaygın bir biçimde kullanılmasına rağmen, Apache’den daha ufak bir topluluk desteği ile gelmesidir.  

Nginx; ayrıca Apache’ye kıyasla, kullanıcılarına çok fazla uzantı ya da modül de sunmamaktadır.