Ben internette Nginx ve Apache karşılaştırarak makalelerin bir yeri vardır bulundu. Ancak, tüm bu karşılaştırmalar PHP kodu çalıştıran web sunucusu için stres testine dayanmaktadır. Ben bu genelde LAMP mimarisi gibi PHP ile dağıtılan ağırlıklı Apache nedeniyle varsayalım.
Benim anlayış, Nginx olay tabanlı mimarisi ile C10K problem çözmek için oluşturulur. Bu Nginx N Konuları / süreçleri ile M eşzamanlı istekleri sunmak gerekiyordu, olduğunu. N Bu M eşzamanlı isteklere hizmet M Konuları / süreçlerini ihtiyacı Apache büyük bir fark M. çok daha az gerekiyordu.
PHP kodu için, programlama modeli uyumsuz değildir. PHP işlemek için her web isteği bir iplik / sürecini işgal olur. Yani, ben bir PHP kodu ile Nginx ve Apache karşılaştırmak için anlamını anlamıyorum.
Istekleri I / O işlemlerini içerir zaman Nginx olay tabanlı mimarisi özellikle Apache üstünlük gerekir. Örneğin, açılış birden çok diğer web servisleri sonuçlarını birleştirmek gerekir. Apache + PHP için, her bir açılış olabilir sadece tam I / Ç işlemi için bekleyen saniye sürer. Bu konuları / süreçlerin çok tüketir. Asenkron programlama kullanılırsa Nginx için, bu, bir sorun değildir.
Asenkron programlama modelini destekleyen dili ile Nginx dağıtmak için daha mantıklı olur?
Ben programlama dili Nginx çoğu potansiyel kazmak olabilir emin değilim, ama bu kimliği kesinlikle PHP.