2009-05-11 10 views
13

Ho letto da alcuni libri che Phusion Passenger è la risposta alla facile implementazione di Ruby on Rails. Ma il mio amico ha detto che prima c'era Apache + un mazzo di Mongrels, e poi lighttpd, e poi nginx, e ora Passenger, e sembra infinito ...mod_rails o Phusion Passenger sono finalmente la risposta a Ruby on Rails Deployment?

ha anche detto che usa dreamhost che usa Passeggero, ea volte lui vede la sua richiesta non elaborata.

Quindi mi chiedo se il Passeggero sia la risposta definitiva allo spiegamento del RoR? lo usi e hai usato il comando "ab" per verificare se il sito sta andando abbastanza bene?

+0

Su Dreamhost, il tuo amico potrebbe essere in esecuzione nel loro limite di memoria per utente, piuttosto che un problema di Passeggero. Vedi: http://stackoverflow.com/questions/824783/rails-app-randomly-crashes-with-error-premature-end-of-script-headers –

risposta

20

risposta breve: sì.

risposta lunga: yeeeeeeeeeeeeeeesssssssssssssssss.

In tutta serietà, Phusion Passenger e Ruby Enterprise Edition hanno praticamente eliminato tutte le difficoltà legate allo spostamento di un'app Rails in produzione. Gli approcci precedenti, inclusa l'esecuzione di una suite di Mongrels, richiedevano molte impostazioni per avviare, arrestare e riciclare i processi di ascolto gestiti da Passenger in modo trasparente o tramite semplici opzioni di configurazione di Apache (o nginx). E il raccoglitore di rifiuti complementare di REE significa che la bacheca di un nuovo ascoltatore utilizza MOLTO meno memoria ed è più veloce da avviare (nella modalità di generazione intelligente "Passenger").

Modifica: @srboisvert rappresenta un ottimo punto; Il passeggero non è la risposta definitiva allo spiegamento del RoR, ma per ora è il mio preferito di gran lunga. Un giorno, dopo aver risolto un sacco di problemi ingegneristici, il mainstream Ruby si sposterà probabilmente dall'hosting di RoR utilizzando un modello multi-processo a un modello a processo singolo, il che renderebbe la gestione ancora più semplice rispetto a Passenger.

+1

+1 per una risposta lunga: yeeeeeeeeeeeeeeesssssssssssssssss. Ho scoppiato a ridere e sto ancora ridendo. –

3

Sì, è la soluzione più semplice, più rapida ed efficiente. Dopo aver risolto molti problemi con gemme come soap4r ecc. Nelle versioni recenti, Passenger è la risposta alle domande di distribuzione ora.

Stiamo eseguendo Apache/mod_rails in un ambiente bilanciato con HAProxy davanti a 2 server. È molto più affidabile della nostra precedente configurazione usando Mongrel/Aapache.

E 'molto facile da prendere il controllo su

  • la quantità di processi passeggeri in esecuzione in Apache
  • la quantità di processi di passeggeri in esecuzione per applicazione
  • e tutto ciò senza il dolore di tweaking un certo numero di file di configurazione come mod_proxy, Apache.
  • la creazione di un host virtuale e l'aggiunta di 3 linee al vostro configurazione di Apache è fondamentalmente abbastanza per farlo funzionare

Matt

3

risposta definitiva? Niente è mai la risposta definitiva.

Direi che Passenger è la risposta attuale.

+2

niente è la risposta definitiva a meno che non si stia giocando a "chi vuole essere milionario". –

4

È la soluzione migliore finora. Ho iniziato a distribuire con FCGI ed è stato un dolore. Poi arrivò il bastardo e fu meglio. Poi sono arrivati ​​i mod_rails ed è stato meglio.

Anche molte applicazioni di grandi dimensioni stanno migrando a mod_rails inclusi alcuni da 37signals, quindi sai che va bene.

mi limiterò a concludere con una citazione da DHH:

La soluzione un pezzo con Phusion passeggeri

Una volta completata l'installazione semplice incredibilmente , si ottiene un Apache che funge da server Web, carica il bilanciatore , il server applicazioni e il watcher del processo . Devi semplicemente inserire nella tua applicazione e toccare tmp/restart.txt quando vuoi rimbalzarlo e bam, sei su e in esecuzione.

Ma in qualche modo il messaggio di passeggeri è stato un po 'lento ad affondare. C'è già un sacco di grandi siti correre fuori di esso. Compreso Shopify, MTV, Geni, Yammer, e ci sposteremo sulla prima Ta-da List a breve, poi speriamo che il resto della suite 37 signali in seguito.

Così, mentre ci sono ancora motivi per eseguire il proprio configurazione personalizzata multi-tier di pezzi configurati manualmente, proprio come ci sono persone rifuggire da mod_php per i loro particolari, credo che abbiamo finalmente sistemati su una risposta predefinita . Qualcosa che non richiede di pensare veramente alla prima distribuzione di dell'applicazione Rails. Qualcosa che funziona semplicemente dal box . Anche se quella casella è un host condiviso !

In conclusione, Rails non è più difficile da distribuire . Phusion Passenger ha reso ridicolmente facile.

(via)

1

Immagino che ora la gente si attacchi ai mod_rails per molti anni. Il modulo è veramente buono. La configurazione è semplice. Sarà difficile sostituirlo con qualche soluzione migliore. Simile a mod_php. L'unico componente chiave che manca: porta di Windows.

2

Sì. Ho eseguito Nginx/Passenger di fronte ad Apache per tutto ciò che ha ancora bisogno di PHP da quando hanno rilasciato 2.2.0 qualche settimana fa. Specialmente con Ruby Enterprise Edition, si avvicina a ciò che definirei "perfetto".

1

In alcune situazioni (impresa, ecc.) Il JVM può anche essere una buona opzione.