Teknolojinin Geldiği Nokta

Nginx Nedir?

Nginx nedir ? Neden bir anda bukadar populer bir hale geldi ? Nginx ruz yazılımcı Igor Sysoev tarafından Kodlanmıştır. İlk olarak mail istemcisi olarak geliştirilmiştir. Sonrasında tüm  platformlarda kullanılabilecek hale getirelerek stabil , hızlı bir web sunucu haline getirilmiştir. Yüksek trafikli yogun olan sunucular için biçilmiş bir kaftan diyebiliriz. Ücretsiz olması insanlara dahaca cazip geliyor.

 

Uzun testler soucunda bizzat test ettigimiz Nginx  centos üzerinde nasıl kurulur ? ile ilgilide bilgi vermeye çalışacagız. Biliyorsunuz genelde web server olarak apache HTTP servisi kullanılıyor. Nginx yaptıgımız testlerde yer yer %400 daha performans saglayabiliyor. Suan web server olarak Litespeed ilk sırada. Fakat litespeed lisans üscretleri kullanıcılara fazla gelebiliyor. Aylık 20-30$ civarında bir ücretlendirmesi bulunuyor. Tabiki Litespeed Nginx’ten cok ileride söylüyoruz. Fakat lisans maliyetine katlanmamanız için nginx kesinlikle tavsiye edilebilir. Nginx sadece bir web servisi degil ayrıca reserve proxy ve mail istemci olarakta kullanılabiliyor. Biz web server özelliginden bahsedelim.

 

Temel HTTP sunucusu özellikleri

 

  • Statik ve indeks dosyaları sunma , otomatik dizin oluşturma ; açık dosya tanımlayıcı önbellek ;
  • Önbelleğe alma ile hızlandırılmış ters proxy . yük dengeleme ve hata toleransı ;
  • FastCGI , uwsgi , SCGI ve memcached sunucularının önbelleğe alınması ile hızlandırılmış destek ; yük dengeleme ve hata toleransı ;
  • Modüler mimari. Filtreler gzipping , bayt aralıkları, parçalanmış yanıtlar, XSLT , SSI ve görüntü dönüşümfiltresi içerir. Tek bir sayfadaki çoklu SSI inklüzleri, proxy veya FastCGI / uwsgi / SCGI sunucuları tarafından işlenirse paralel olarak işlenebilir;
  • SSL ve TLS SNI desteği ;
  • Ağırlıklı ve bağımlılık temelli önceliklendirme ile HTTP / 2 desteği .

 

Diğer HTTP sunucusu özellikleri

 

  • Ad tabanlı ve IP tabanlı sanal sunucular ;
  • Canlı ve boru hatlı bağlantılar destekler;
  • Erişim günlük biçimleri , arabelleğe yazılmış günlük yazımı , hızlı günlük döndürme ve syslog günlüğü ;
  • 3xx-5xx hata kodları yönlendirme ;
  • Tekrar yazma modülü: URI’nin düzenli ifadeler kullanılarak değiştirilmesi ;
  • Istemci adresine bağlı olarak farklı işlevler yürütülmesi ;
  • Erişim kontrolü, istemci IP adresine , şifreye (HTTP Temel kimlik doğrulama) ve alt sorgulama sonucuna dayanarak ;
  • HTTP yönlendiricisinin geçerliliği ;
  • PUT, MKCOL kopya, ve HAREKET DELETE yöntem;
  • FLV ve MP4 akışı;
  • Yanıt oranı sınırlama ;
  • Bir adresden gelen eş zamanlı bağlantıların veya isteklerin sayısını sınırlama ;
  • IP tabanlı coğrafi konumlandırma ;
  • A / B testi ;
  • Yansıtma isteyin ;
  • Gömülü Perl ;
  • nginScript .

 

Posta proxy sunucusu özellikleri

 

  • Harici bir HTTP kimlik doğrulama sunucusu kullanarak IMAP veya POP3 sunucusuna kullanıcı yönlendirme ;
  • Harici bir HTTP kimlik doğrulama sunucusu ve dahili bir SMTP sunucusuna bağlantı yeniden yönlendirmekullanan kullanıcı kimlik doğrulaması ;
  • Kimlik doğrulama yöntemleri:
    • POP3 : KULLANICI / GEÇİŞ, APOP, OTURUM GİRİŞİ / DÜZ / SICAK-MD5;
    • IMAP : GİRİŞ, OTURUM GİRİŞİ / DÜZ / SICAK-MD5;
    • SMTP : OTURUM GIRIŞI / DÜZ / SICAK-MD5;
  • SSL desteği;
  • STARTTLS ve STLS desteği.

 

TCP / UDP proxy sunucusu özellikleri

 

  • TCP ve UDP’nin genel proxy’leri ;
  • TCP ve TCP için SSL ve TLS SNI desteği;
  • Yük dengeleme ve hata toleransı ;
  • Müşteri adresine dayalı erişim kontrolü ;
  • Istemci adresine bağlı olarak farklı işlevler yürütülmesi ;
  • Bir adresden gelen eşzamanlı bağlantı sayısını sınırlama ;
  • Erişim günlük biçimleri , arabelleğe yazılmış günlük yazımı , hızlı günlük döndürme ve syslog günlüğü ;
  • IP tabanlı coğrafi konumlandırma ;
  • A / B testi ;
  • nginScript .

 

Mimari ve ölçeklenebilirlik

 

  • Bir ana ve birkaç işçi süreci; işçi süreçleri ayrıcalıksız bir kullanıcı altında çalışır;
  • Esnek konfigürasyon ;
  • İstemci hizmetini kesintiye uğratmadan bir yürütülebilir dosyanın yeniden yapılandırılması ve yükseltilmesi;
  • Kqueue desteği (FreeBSD 4.1+), epoll (Linux 2.6+), / dev / poll (Solaris 7 11/99 +), olay portları (Solaris 10), seçin ve anket;
  • EV_CLEAR, EV_DISABLE (olayları geçici olarak devre dışı bırakmak için), NOTE_LOWAT, EV_EOF, mevcut veri sayısı, hata kodları gibi çeşitli kqueue özelliklerinin desteği;
  • EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) ve EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+) gibi çeşitli epoll özelliklerinin desteği;
  • sendfile (FreeBSD 3.1+, Linux 2.2+, macOS 10.5+), sendfile64 (Linux 2.4.21+) ve sendfilev (Solaris 8 7/01 +) desteği;
  • Dosya AIO (FreeBSD 4.3+, Linux 2.6.22+);
  • DIRECTIO (FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, macOS);
  • Kabul filtreleri (FreeBSD 4.1+, NetBSD 5.0+) ve TCP_DEFER_ACCEPT (Linux 2.4+) desteği ;
  • 10,000 etkin olmayan HTTP canlı tutma bağlantısı yaklaşık 2.5M bellek alır;
  • Veri kopyalama işlemleri minimum düzeyde tutulmaktadır.

 

Test edilmiş işletim sistemi ve platformlar

 

  • FreeBSD 3 – 11 / i386; FreeBSD 5 – 11 / amd64;
  • Linux 2.2 – 4 / i386; Linux 2.6 – 4 / amd64; Linux 3 – 4 / armv6l, armv7l, aarch64, ppc64le;
  • Solaris 9 / i386, güneş4u; Solaris 10 / i386, amd64, sun4v;
  • AIX 7.1 / powerpc;
  • HP-UX 11.31 / ia64;
  • macOS / ppc, i386;
  • Windows XP, Windows Server 2003.