22 Eylül 2017 Cuma

Glassfish ve Tomcat gibi uygulama sunucularının önünde Apache Web Server'in kullanılma nedenleri nelerdir?

  • Clustering. Apache HTTP server'i ön tarfata kullanmak Apache HTTP server'ı birden fazla Apache Tomcat uygulama sunucusunun önünde bir ön kapı haline getirerek Tomcat'lerin biri çöktüğünde Apache HTTP server'in bu tomcati yoksayarak diğer Tomcat'e geçmesini sağlar ve bu sayede sistem admini gece rahatça uyuyabilir. Bu senaryo donanımsal yük dengeliyi kullanılmışsa veya Tomcat'in clustering kabileyetleri kullanılmışsa göz ardı edilebilir.
  • Clustering/Security. Apache'i ayrıca Tomcat'ler için farklı URL isim uzayları için bir ön kapı olarak kullanabiliriz.(/app1/, /app2/, /app3/, veya virtual host'lar). Tomcat'ler güvenli bir alanda olabilirler ve güvenlik açısından sadece Apache HTTP server ile ilgileniriz. Yani özet olarak Apache akıllı bir proxy sunucu haline gelmiş olur.
  • Güvenlik. Bu konu her iki yöne de değişebilir. Java güvenlik yöneticisine sahipken, Apache daha büyük bir akıl hocalığı ve daha fazla hüner içeriyor. Buna daha ayrıntılı bir şekilde girmeyeceğim, ancak Google'ın arkadaşınız olmasını sağlayın. Senaryonuza bağlı olarak, biri diğerinizden daha iyi olabilir. Ancak unutmayın ki, Tomcat ile Apache'yi çalıştırırsanız - savunmanız gereken iki sisteminiz var, artık bir sisteminiz yok.
  • Eklentiler. CGI, perl'e ekleme yaparken PHP, Apache için çok doğaldır. Apache HTTP'de, istediğiniz zaman bağlanabilen yüzlerce modül vardır. Apache Tomcat de bu yeteneğe sahip olabilir, ancak bunun için kod henüz yazılmamıştır.
  • Dekoratörler! Apache Tomcat'in önündeki Apache HTTP ile, Apache Tomcat'in desteklemediği veya hemen kod desteği bulunmayan herhangi bir sayıda dekoratör gerçekleştirebilirsiniz. Örneğin, Apache Tomcat için modheaders, modrewrite ve mod_alias yazılabilir, ancak neden Apache HTTP bunu çok iyi yaptığında tekerleği yeniden icat edelim?
  • Hız. Apache HTTP, statik içerik sunumunda Apache Tomcat'tan daha hızlıdır. Ancak yüksek trafik alanınız yoksa, bu işe yaramaz. Fakat bazı senaryolarda, Apache Tomcat Apache httpd'den daha hızlı olabilir. Öyleyse sitenizi benchmarklayın. Apache Tomcat, uygun konnektörü kullanırken (sendFile etkinleştirilmiş APR) httpd hızlarında performans gösterebilir. Hız, Apache httpd ve Tomcat arasında seçim yaparken bir faktör olarak düşünülmemelidir.
  • Soket kullanımı / sistem kararlılığı. Apache HTTP, hata koşullarına göre Apache Tomcat'ten daha iyi soket işleme özelliğine sahiptir. Başlıca nedeni, Apache Tomcat'in çapraz platform olması gereken JVM aracılığıyla tüm soket işlemlerini gerçekleştirmesi gerektiğidir. Soket optimizasyonu platforma özgü bir sıkıntı sorunudur. Çoğu zaman Java kodu iyi, ancak aynı zamanda düşen bağlantılar, geçersiz paketler, geçersiz IP'lerden gelen geçersiz istekler ile bombardıman edildiğinde, Apache HTTP bu hata koşullarını JVM tabanlı programdan düşürmede daha iyi bir iş çıkarıyor. (YMMV)

0 yorum: