Yanıtlar:
Node.js'nin önüne başka bir web sunucusu yapıştırmanın birkaç iyi nedeni vardır:
Muhtemelen bir CDN aracılığıyla veya Varnish gibi bir önbellek sunucusunun arkasından statik dosyalarınızı sunmanız gerektiğini söyleyerek ikinci mermi noktasını uyaracağım. Bunu yapıyorsanız, kökeni Düğüm veya Nginx veya Apache olması önemli değildir.
Özellikle nginx ile dikkat edin: websockets kullanıyorsanız, nginx'in son sürümünü kullandığınızdan emin olun (> = 1.3.13), çünkü sadece websockets kullanmak için bir bağlantıyı yükseltmek için destek ekledi.
:80authbind kullanarak düğümü kök olarak çalıştırma gibi ayrılmış bağlantı noktalarına bağlanabileceğinizi belirtmek gerekir: thomashunter.name/blog/using-authbind-with-node-js
Sadece pauljz'in cevabına bir neden daha eklemek için, bir ön uç sunucusu kullanıyorum, böylece arka uç sunucusunu yeniden başlattığımda 502 hata sayfası oluşturabilir veya bir nedenle çöküyor. Bu, kullanıcılarınızın bağlantı kuramama konusunda hiçbir zaman hata almamalarını sağlar.
İnanıyorum ki, ne yaptığınızı bildiğiniz sürece Node'u statik dosyalara sunmak için her durumda iyi . Uygulama sunucusunu, statik sunuculara hizmet etmek için kullanmak çok yeni bir paradigmadır (pek çok (her?) Rakip teknoloji (PHP, Ruby, Python, vb.) Uygulama sunucularının önünde HTTPD veya Nginx gibi bir web sunucusu gerektirir) .
Node ile statik dosyalar sunmaya karşı okuduğum her nesnel neden, en iyi bildiğiniz şeyleri kullanma veya daha iyi test edilmiş / daha kararlı olarak algılanan şeyleri kullanma fikri etrafında dönüyor. Bunlar pratik olarak konuşmak için çok geçerli nedenlerdir, ancak tamamen teknik bir ilgisi yoktur.
Düğüm ile mümkün olmayan klasik bir web sunucusunda mümkün olmayan bir özellik bulamadığınız sürece (ve bundan şüpheliyim), her iki yaklaşım da iyi olduğu için en iyi neyi bildiğinizi veya neyle çalışmayı tercih edeceğinizi seçin.
Nginx ve Apache'ye gelince - Düğüm ile aynı şekilde "oynayacaklar". Bunları Düğüm ile ilgili olmaksızın karşılaştırmalısınız.
systemd, pm2vb orada artılar ve eksiler ve kullanıcı konuşuyoruz böylece onların zehir almalı Yani .
express.staticETag'leri ve önbellek kontrol başlıklarını iyi işleyecek.