SORU
31 AĞUSTOS 2011, ÇARŞAMBA


Nasıl yüksek kullanılabilirlik multi-core, ters proxy ve SSL kullanarak Node.js dağıtmak için bulut

Bu ServerFault için ilan verdim, ama node.js toplumun küçük var gibi görünüyor, bu daha fazla maruz kalma getirmek umuyorum.

Node.js (0.4.9) uygulama ve am en iyi ve kurmak ve yönetmek için nasıl araştırtıyorum. Çalıştırmak bulut () EC2 veya RackSpace ile yüksek kullanılabilirlik istiyorum. App HTTPS çalışması gerekir. Doğu/Batı/AB tam bir başarısızlık daha sonra endişelenirim.

Ben çok okuma hakkında canlı tutma (Sonradan görme, Sonsuza kadar), çok çekirdekli yarar (Füg, çoklu-düğüm, Küme), ve proxy/yük dengeleyici (düğüm-http-proxy, nginx, Vernik ve Pound). Ancak, çeşitli programları bana uygun birleştirmek için nasıl emin değilim.

Akılda bu kurulum var ve bazı soruları demir ve geri bildirim almak gerekir.

  1. KümeNode.js, 1 düğüm çalıştırmak için bunu kullanın "küme" sunucuda olmayan ayrıcalıklı port 3000 söyle () başına uygulama. yani en aktif olarak geliştirilen ve görünüşte popüler multi-core programı.S1:GerekirSonsuza dekküme hayatta tutmak için kullanılan ya da sadece yedek olacak?
  2. Kullanım 1nginxbaşı uygulama sunucusu bağlantı noktası 80, sadece üzerinde çalışan port 3000 düğüm için proxy ters.S2:düğüm-http proxyveya statik dosyaları hızlı bir şekilde gzip server etmese de, bu görev için daha uygundur?
  3. Yukarıda açıklandığı gibi en az 2x sunucuları bağımsız bir sunucu dengeleyici bu kutular üzerinde bir yük olarak bilinir. KullanınPoundHTTP ve HTTPS sonlandırmak için geçmek dinleme 443Vernikdenge sunucuları yukarıda IPs genelinde robin yük tur.S3:Gerekirnginxher ikisi de yerine kullanılabilir?S4:BÖLÜM veya yük dengeleyici yerine (ikincisi HTTPS sonlandırmak değil) dikkat edilmesi RackSpace gerekir

Genel Sorular:

  1. Yukarıda (2) için bir ihtiyaç görüyor musunuz?
  2. Nerede HTTPS sona erdirmek için en iyi yer Neresidir?
  3. EğerWebSocketsileride ihtiyaç vardır, oyuncu değişikliği yapmak ne nginx?

Gerçekten insanların tercih ettikleri mevcut üretim ortamları ve kurma nasıl duymak isterim. Çok takdir.

CEVAP
24 Ocak 2012, Salı


Bu soru-cevap akışı çok istemiştim beri birkaç ay geçti. Hem Samyak Bhuta ve nponeccop iyi bir öneri vardı, ama sorularıma bulduğum cevapları tartışmak istedim.

Üretim sisteminin bu noktada anlaştık aldım, ama daha fazla ilerleme her zaman yapılıyor. Benzer bir senaryoda herkes yardımcı olur umarım.

  1. Küme çok çekirdekli fiziksel veya sanal makine üzerinde gelen istekleri işlemek için istediğiniz kadar çocuk süreçleri spawn kullanın. Bu, tek bir bağlantı noktasına bağlanır ve daha kolay bakım yapar. Kural n - 1 Küme işçiler. Küme ölen işçi işlemler respawns olarak Sonsuza kadar buna ihtiyacın yok. Gerek esneklik bile Küme, üst düzey, emin olun kullandığınız Sonradan görme bir komut dosyası (veya eşdeğer) daemonize, Node.js uygulama ve kullan Monitör (veya eşdeğer) izle, PID, Küme, üst ve yeniden doğma eğer ölür. Sonradan görme yeniden doğma özelliğini kullanmayı deneyebilirsiniz, ama Monitör şeyleri izlerken tercih ederim, split sorumlulukları yerine, en iyi Monitör bu yeniden doğma da halledeyim diyorum.

  2. İçinde app server başına 1 nginx port 80, ters bağlı olursa olsun Küme proxy sadece çalışan (1) kullanın. -http-proxy düğüm kullanılabilir, ama nginx daha olgun, daha featureful ve statik dosyaları hizmet daha hızlıdır. Çalışma nginx yalın (log yok, küçük dosyaları gzip yok) bu yükü en aza indirmek için.

  3. Minimum 2x sunucuları yukarıda açıklandığı gibi en az 2 kullanılabilirlik bölgeleri, ve eğer BÖLÜM, bir ELB sona erdirir HTTPS/SSL bağlantı noktası 443 ve iletişim kurar HTTP port 80 node.js uygulama sunucuları. Lab II Doç basit ve, eğer arzu ederseniz, biraz daha kolay otomatik ölçek. IP veya hepsini bir DNS kendilerini sağlayıcı dengeli paylaşımı ya da birden fazla nginx çalıştırabilir ama şimdilik bu kadarı da fazla buldum. Bu noktada, her uygulama sunucuda nginx örneği kaldırmak.

Nginx uygun olmaya devam ediyor WebSockets ihtiyacım var ve WebSockets resmin içine geldiğinde bu konuyu tekrar gündeme alacağım.

Görüşlerinizi bekliyoruz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DavidParody

    DavidParody

    17 EKİM 2009
  • EvilControllers

    EvilControll

    20 Ocak 2008
  • Professor Messer

    Professor Me

    27 NİSAN 2007