2011-01-04 16 views
5

Qual è il miglior stack di distribuzione node.js? Userò Nginx che comunica con node.js su fugue attraverso unix domain socket + mongodb + pacchetti NPM installati nella home dell'utente. C'è qualcosa di meglio?Stack di distribuzione Node.js

A proposito, il nodo non dovrebbe avere qualcosa come il rack, che gestirà la configurazione del server e inizierà ad ascoltare sulla porta o sul socket che sarebbe forzato dal software del server? Ora faccio pazzo hi-jacking server.listen per ottenere server e lanciarlo da Fuga. Hai un po 'di esperienza nel fare la distribuzione del nodo drop-in?

risposta

0

La maggior parte delle distribuzioni Node.js che ho visto serve direttamente dal codice javascript stesso utilizzando http.createServer. In altre parole, la maggior parte degli script node.js che ho visto sono server web e non solo app web. Diversi framework scritti per Node.js lo assumono.

Questo fa parte dell'intero punto di Node.js: serve i tuoi contenuti utilizzando un server non bloccato, a thread singolo, basato su eventi.

1

Esonero di responsabilità: non sono un esperto nodo

Credo Connect è considerato un Rack analogico.

Si noti che il supporto SSL nel nodo è, secondo il suo creatore, in gran parte rotto e un work-in-progress, quindi se la tua app ha bisogno del supporto SSL - e quale app professionale non lo fa? - hai bisogno per eseguire il nodo in collaborazione con un altro componente, in genere nginx AFAIK.

Si consiglia di guardare la mailing list per gli sviluppi in questo settore e le informazioni sulle configurazioni comuni.

+0

ieri Ryan Dahl twittato sulla nuova API https in https nodo: // Gist .github.com/764213 –

+1

"Connect è un livello middleware per Nodo.js "vs" Rack fornisce un'interfaccia minima tra i server Web che supportano i framework Ruby e Ruby. "Connect non fornisce una convenzione per il lancio da parte del software server.In articolo su Connect on Ajaxian (http://ajaxian.com/archives/connect-great -middleware-per-node) hanno scritto: module.exports = new Connect.Server ([...]), potrebbe essere una buona convenzione IMO –

+0

Corretto, questo è l'API. Sviluppo del nodo, incluso SSL/TLS supporto, è ancora nelle sue fasi iniziali e molto volatile - ci vorrà molto tempo perché il codice base si stabilizzi (le versioni stabili sono pari e lo sviluppo attuale è la versione 3). –

2

Ci sono sono alcuni progetti in fase di sviluppo volti a risolvere questo problema:

forever e cluster (video intro for cluster) sono entrambi abbastanza buone soluzioni. Ho notato piccole discrepanze sia in quando li ho provati - nel senso che potrebbero non avere più i problemi.

Ci sono 2 cose principali da tenere in considerazione quando si sceglie una distribuzione:

  1. daemonizing l'applicazione del nodo
  2. riavviare l'applicazione del nodo se si blocca

si potrebbe anche prendere in considerazione registrazione, caratteristiche della riga di comando e sicurezza. Potresti anche semplicemente scrivere il tuo script di implementazione che usa nohup.

Un'ultima cosa che non so ancora come affrontare: la sicurezza. L'ultima volta che ho controllato non è possibile utilizzare SSL in modo stabile a meno che non si usi qualcosa come nginx e non si sappia nemmeno dei buchi di sicurezza nel nodo.

Problemi correlati