NGINX vs. APACHE: Web Server Nedir, Farkları Nelerdir?
NGINX vs. APACHE: Web Server Nedir, Farkları Nelerdir?
Nginx ve Apache, dünya çapındaki en büyük açık kaynaklı web hizmetleridir ve internetin toplam trafiğinin yarısından fazlasını yönetirler. Her ikisi de farklı iş yüklerini işlemek ve çeşitli yazılım türlerini tamamlamak için kapsamlı bir şekilde tasarlanmıştır.
Peki sizin için en iyisi hangisidir?
Nginx ve Apache birçok yönden benzer olabilirler, ancak aynı değillerdir. Her birinin kendine özgü avantajları ve dezavantajları vardır. Bu nedenle birinin hedefleriniz için diğerinden daha iyi bir çözüm olduğunu bilmeniz çok önemlidir.
Hedeflerin doğrultusunda seçiminizin hangisi olacağına karar vermeniz için bugün, hem Nginx hem de Apache‘nin tüm özelliklerini sizin için detaylı olarak inceleyeceğiz.
Apache Nedir?
Apache HTTP sunucusu, Apache Software Foundation tarafından yönetilen açık kaynaklı bir web sunucusu uygulamasıdır. Sunucu yazılımı ücretsiz olarak dağıtılır ve açık kaynak lisansı, kullanıcıların performansı değiştirmek ve programın gelecekteki gelişimine katkıda bulunmak için temeldeki kodu düzenleyebileceği anlamına gelir. Destek, düzeltmeler ve geliştirme sadık kullanıcı topluluğu tarafından yürütülür ve Apache Software Foundation tarafından koordine edilir.
Apache tüm büyük işletim sistemlerinde (Linux, Windows, Unix, OSX, NetWare) çalışsa da, çoğunlukla Linux ile birlikte kullanılır. MySQL veritabanı ve PHP kodlama diliyle birleştirilerek, popüler LAMP web sunucusu çözümünü oluşturur.
Apache, 1996’daki başlangıcından bu yana her zaman pazar lideri olmuştur. 2009’da Apache sunucusunda çalışan 100 milyon web sitesi vardı. Fakat pazara giren yeni rakiplerle birlikte Apache’nin 2010’da %60 olan pazar payı, Haziran 2013’te %54’e, Şubat 2014’te ise %38’e düşmüştür. Bununla birlikte Apache Software Foundation, yeni harici modüller yayınlayarak ürünlerini mücadele hala ayakta tutmaya çalışmaktadır.
Yapılan testlerde Apache‘nin, Nginx’ten çok daha yavaş olduğu ortaya çıkmıştır. Fakat bu istatistik statik sayfalar içindir. Apache, dinamik sayfalar için aslında biraz daha iyi yükleme ve yenileme sürelerine sahiptir. Ve bir web sunucusunda desteklenen özelliklerin sayısını düşünüldüğünde, Apache açık ara öndedir. Apache’nin özelliklerinin çoğu, temel işlevselliği genişleten derlenmiş modüller olarak uygulanır. Bu özelliklerden ve modüllerden bazıları aşağıdaki gibidir:
- Sunucu tarafı programlama dili desteği
- Ortak dil arayüz desteği (Perl, Python, Tcl ve PHP)
- Kimlik doğrulama modülleri: mod_access, mod_auth and mod_auth_digest
- SSL / TLS destek modülü – mod_ssl
- Proxy modülü – mod_proxy
- URL yeniden yazıcısı – mod_rewrite
- Özel günlük dosyaları – mod_log_config
- Filtreleme desteği – mod_include ve mod_ext_filter
- Bir makinenin birkaç farklı web sitesini barındırmasını ve aynı anda sunmasını sağlayan sanal barındırma
- Birkaç iyi geliştirilmiş GUI arabirimi
- Web sayfası sıkıştırma – mod_gzip
- Barındırılan web siteleri için mükemmel güvenlik
Nginx Nedir?
2002 yılında Rus geliştirici Igor Sysoev tarafından geliştirilen Nginx, Apache gibi ücretsiz ve açık kaynaklı bir web sunucusudur. Linux, Unix, Mac OS X ve Windows üzerinde çalışır. Nginx, yeni başlayanlar için bile bol miktarda kişisel yardım sağlayan aktif bir kullanıcı topluluğuna sahip olsa da, Nginx daha yeni olduğu için, Apache’ye kıyasla daha az belge ve desteğe sahiptir.
Yüksek performanslı bir web sunucusu olan Nginx, açık kaynak yapısı ile özelleştirmeyi kolaylaştırır.
Nginx’in gelişimi, 2002 yılında sunucu başına simüle edilmiş istek sayısını artırma ihtiyacı doğduğunda başlamıştır.
Teknik seviyeye gelince, Nginx var olmayan bir alt süreç mimarisi kullanır. Bu, bir istek oluşturulduğunda, sunucu işlemcisinde yeni bir işlemin oluşturulmadığını gösterir. Bu da sunucunun performansını artırır.
Ayrıca Nginx son yıllarda en hızlı büyüyen web sunucusudur. Nginx sunucusunda çalışan 375 milyon web sitesi vardır.
En İyi Seçenek Hangisi: NGINX vs. APACHE?
Apache ve Nginx değerli rakiplerlerdir, ancak kullanım durumunuza bağlı olarak, biri bir projeye diğerinden daha uygun olabilir.
1. Popülerlik
Popüler olmak teknik bir terim değildir, ancak kesinlikle sunucunun sahip olabileceği topluluk desteği düzeyi üzerinde etkisi vardır. Hem Nginx hem de Apache oldukça popülerdir ve bu yüzden neredeyse benzer popülerlikte oldukları söylenebilir. Ancak Apache, açık kaynak topluluğundan daha fazla destek alır ve bu da onu eğitim projeleri ve bireyler için ideal bir platform haline getirir. Ayrıca Apache hala dünyanın en popüler web sunucusu olarak anılır.
2. Performans
Bir web siteniz varsa, web sunucusu hızlı olmalıdır. Aksi takdirde, sunucu çökmelerine ve daha da kötüsü ziyaretçilerin sitenizi terk etmesine yol açabilir.
Performans ele alındığında, Nginx’in alt süreç yönetimi müşteri isteklerine daha iyi yanıt verir. Ek olarak, olay tabanlı olduğu için sadece sunucu isteklerle yanıt verir, gereksiz yere bellek harcamasına izin vermez. Bunun dışında Nginx, bilgisayar kaynaklarını verimli bir şekilde tüketir. Basit bir ifadeyle, çalışmaya devam etmek için daha az RAM gerektirir.
Daha önemlisi, Nginx birden çok isteği daha iyi bir şekilde takip eder. Bu nedenle, birkaç istemci aynı anda sunucunuza eriştiğinde, Nginx, Apache’den daha üstündür.
Statik Siteler: NGINX, 1000 eşzamanlı bağlantı çalıştıran bir kıyaslama testinin sonuçlarına göre Apache’den yaklaşık 2,5 kat daha hızlıdır. Aynı anda 512 bağlantı ile çalıştıran başka bir test, NGINX’in yaklaşık iki kat daha hızlı olduğunu ve biraz daha az bellek tükettiğini (% 4 daha az) göstermiştir. Yapılan araştırmalara göre NGINX, statik içeriği Apache’den çok daha hızlı sunar. Yüksek rekabet seviyelerinde çok fazla statik içeriğe ihtiyacınız varsa, NGINX daha verimlidir.
Dinamik Siteler: 2015 yılında yapılan bir kıyaslama testi, Apache’nin PHP-FPM modülüyle ilişkili mpm_event’in NGINX ile aynı sayıda PHP isteğini işleyebileceğini ortaya çıkardı. Bunun nedeni, işlem süresinin neredeyse tamamının web sunucusunun merkezi kısmı yerine PHP çalışma ortamında geçirilmesidir. PHP çalışma ortamı iki web sunucusu arasında oldukça benzerdir.
PHP (ve muhtemelen diğer diller) açısından, sunucuların dinamik sayfalar sunma performansı hemen hemen aynıdır.
3. İşletim sistemi desteği
Apache, tüm Unix benzeri sistemlerde (örneğin, Linux veya BSD) çalışır ve Microsoft Windows için tam desteğe sahiptir. NGINX ayrıca birkaç modern Unix benzeri sistemle çalışır ve Windows desteğine sahiptir, ancak Windows performansı diğer platformlar kadar güçlü değildir. Apache bu noktada daha fazla avantaj gösterir.
4. Güvenlik
Güvenlik açısından, her iki web sunucusu da iyi güvenlik politikaları sunar. Her iki sunucunun geliştirme ekipleri, DDo’ların saldırılarını önlemek için sık sık güvenlik yamaları yayınlar.
Dahası, oldukça aktif gelişmeler ve sürekli güncellemeler alırsınız.
5. Esneklik
Bir sistem yöneticisinin uğraşması gereken çok sayıda farklı durum vardır. Bu nedenle, gerekli olana uyum sağlamak için uygulamalar oldukça esnek olmalıdır.
Oldukça esnek bir web sunucusu olan Apache, 60’ın üzerinde farklı modülü destekleyerek işlevselliğini daha da genişletir.
Ayrıca, bağlantıların özelleştirilmesi Apache tarafından .htaccess aracıyla desteklenirken, Nginx bunu desteklemez.
Sonuç olarak Apache, Nginx’e kıyasla daha esnek ve özelleştirilebilirdir.
6. Dokümantasyon
Apache ve NGINX dokümantasyon mükemmeldir. NGINX ayrıca, sertifika sınavları da dahil olmak üzere çeşitli NGINX konularında çevrimiçi ve yerinde eğitim oturumları sunar.
Sonuç – Apache mi, Nginx mi?
Her iki seçenek de son sürümlerinde çoğu alanda birbiriyle rekabet edebilir. Statik içerik için NGINX daha uygundur, ancak dinamik içerik için performanstaki fark küçüktür. NGINX, bazı gelişmiş özelliklerinin yanı sıra ticari desteği ve eğitimleriyle de göz doldurur.
Çok fazla statik içerik ve medya akışı sunması gereken yüksek trafikli web sitelerinin sahipleri muhtemelen NGINX’i tercih edecektir. (veya Apache ve NGINX’in bir kombinasyonunu kullanacak). Diğer web sitesi kullanım durumlarının çoğunda ise, hem Apache hem de Nginx kullanabilirsiniz.
Diğer yazılarımızdan bazılarına göz atmak için: