"Engine-ex" olarak da adlandırılan Nginx, dünya çapında önemli trafikler alan sitelerin çalıştığı açık kaynak kodlu websunucusudur. Aslında ilk olarak web sunucusu hizmeti verirken şu anda reverse proxy, cache ve load balancer gibi farklı konulara da çözümler sunmaktadır.
Yüksek trafiğe sahip olan şirketlerden kastımız Microsoft, IBM, Google, Adobe, Atlassian, T-Mobile, GitLab, DuckDuckGo, Salesforce, LinkedIn, Cisco, Facebook, Target, Twitter, Apple, Intel vb. firmalara ait sistemler ve sitelerdir. Aslında Nginx'in hikayesi Ekim 2014 tarihinde Igor Sysoev un cıktıgı ilk release dayanıyor. Igor, mevcut web sunucularında 10K ve üzeri paralel işlemlerde performans problemi ile karşılaşıldığını gözlemledi ve bunun çözümüne yönelik Nginx isimli sistemi hayata geçirdi. Tamamen açık kaynak olarak hazırlanan sistem şu anda dünyada en popüler web sunucuları listesinde ilk sıralarda.
Nginx Nasıl Çalışır?
Nginx, düşük bellek kullanımı ile birlikte paralel işlemlerin sorunsuz şekilde çalışmasına yönelik bir yapı üzerine kurulmuştur. Web sunucuya gelen tüm requestlerde yeni bir process açmak yerine tek process üzerinden tüm işlemlerin paralel şekilde yürütülmesini hedeflemiş ve bu kurguda çalışmaktadır. Nginx sunucularında, bir ana process birden çok çalışan processi kontrol edebilmektedir. Nginx üzerinden bulunan herhangi bir istek, diğer istekleri engellemeden çalışan processler tarafından eşzamanlı olarak yürütülebilir.
Nginx üzerinde kullanılan önemli özellikler şunlardır;
- IPv6
- Cacheleme ile reverse proxy
- Load balancing
- FastCGI destekli cacheleme sistemi
- WebSocketler
Nginx vs Apache Karşılaştırması
Apache, Nginx gibi tamamen açık kaynak kodlu popüler websunuculardan diğeridir. Hatta rakamlar karşılaştırıldığında Apache, %43,6 kullanım oranıyla Nginx'den daha fazla kullanılmaktadır. Nginx içinse oran %41.9 olarak tespit edilmiştir ancak her geçen yıl kullanım oranı Nginx yönünde artmaktadır.
Kullanım oranı olarak Apache önde gözüküyor olsa bile en fazla trafik olan sistemler karşılaştırıldığında Nginx in kullanım oranı daha fazladır. Yani popüler sistemlere ait sunuculara gelen trafiklerde Nginx tabanlı sunucular tercih edilmektedir. Netflix, NASA, Wordpress gibi popüler sistemlerde de Nginx tercih edilmektedir.
Websitesinin Apache'de mi yoksa Nginx'de mi çalıştığını nasıl anlarız?
Websitelerinde hangi websunucunun çalıştığını tespit etmek amacıyla server isimli HTTP Header mesajını gözlemlemeniz yeterli olacaktır. Bu mesajı gözlemlemek için Google Chrome uygulamasında Developer Tools alanına tıklayıp Network sekmesini açınız. Sonrasında F5 tuşuna basıp sayfayı yenilediğinizde websitesine ait header mesajlarının network alanında listelendiğini gözlemleyebilirsiniz.
Yukarıdaki resimde yazilimdersi.info sitemizin çalıstığı websunucunun Apache olduğunu görebilirsiniz. Aynı şekilde facebook.com, google.com gibi farklı popüler sitelerinde sunucu bilgilerine bu yöntemle ulaşabilirsiniz. Ancak unutmamanız gereken konu bu bilgiler her zaman açık olarak paylaşılmamaktadır. Eğer sunuculardan sorumlu ekip, websitelerinde header bilgisi olarak sunucunun paylaşılmasını engellemek isterse, ilgili sunucu üzerinde bu bilgiyi saklayabilir.