2009-11-23 10 views
6

Molte persone hanno chiesto informazioni su Rails su questo sito, ma non conosco abbastanza bene il back-end per sapere se c'è una differenza.Ruby (off the Rails) Hosting

Desidero ospitare alcuni "servizi web" di Ruby CGI, in pratica solo metodi ruby ​​che accettano parametri da una richiesta POST, accedono a un db MySQL e restituiscono dati.

Ho guardato RoR e sembra eccessivo per questo, da quello che posso dire è per accelerare lo sviluppo dei dati dei siti CRUD, che non è affatto quello che sto facendo.

Quindi la mia domanda è: questo influenza il fornitore di hosting che scelgo? Qualcuno consiglia un buon host Ruby per le operazioni CGI? Non ho familiarità con FastCGI, mod_ruby, Passenger, Mongrel ecc. E cosa significano per prestazioni, scalabilità, ecc. Voglio solo ospitare i miei script ruby ​​con prestazioni ragionevolmente buone, e tutte le informazioni là fuori (e qui) sembrano concentrati sulle rotaie.

risposta

9

In primo luogo, se si desidera leggere, Sinatra è solitamente la mia prima scelta. Abbinalo con rack e Passenger per ottenere i migliori risultati. Non è CGI, ma realisticamente parlando, CGI è raramente un buon abbinamento con Ruby.

Ecco il "Ciao mondo!" Sinatra app dalla pagina principale:

require 'rubygems' 
require 'sinatra' 
get '/hi' do 
    "Hello World!" 
end 

Difficile da ottenere più leggero di quello.

Per quanto riguarda i provider, chiunque supporti Passenger (mod_rack) dovrebbe essere in grado di gestire Sinatra. Sono un grande fan di Slicehost personalmente, ma sono un host VPS, il che significa che è necessario essere in grado di installare e gestire l'intero stack da soli. Se non ti dispiace pagare un po 'di più per l'infrastruttura, rende l'installazione e l'implementazione estremamente semplici, a patto che le tue esigenze non superino quelle fornite (sembra che non lo faranno). Nell'improbabile caso che tu stia utilizzando solo 5 MB o se stai utilizzando un meccanismo di archiviazione esterno come Amazon RDS, Heroku potrebbe essere effettivamente gratuito per te.

Aggiornamento:

  • passeggeri è un modulo di Apache che consente alle applicazioni Rack per essere eseguito all'interno di Apache.
  • Rack è un livello middleware che separa il server Web e il framework Web l'uno dall'altro. Ciò consente ai framework Web di funzionare su qualsiasi server Web per il quale esiste un adattatore.
  • Sinatra è un framework Web leggero che gira su Rack.

volta passeggeri e rack sono installati (gem install rack, gem install passenger) è sufficiente modificare il vhost Apache per puntare il file config.ru per il Sinatra app e creare le directory necessarie come per la Passenger docs e ti essere buono per andare.

+0

scusa per la risposta noob, ma questa è la mia prima impresa CGI al di fuori di .NET - perché dovrei aver bisogno di Sinatra (o Rack/Passenger/Camping)? Non posso semplicemente lanciare il file .rb nella cartella cgi-bin, usare 'require cgi', leggere le variabili POST, eseguire il mio codice e inviare una risposta? – LoveMeSomeCode

+0

Certo, a patto che non ti dispiaccia il costo costante di avvio/spegnimento che devi sostenere. Non sarebbe un grosso problema se scrivessi semplicemente "Ciao mondo", ma hai detto che devi scrivere su un database. Ciò significa che è necessario caricare e scaricare l'adattatore del database su ogni singola richiesta. In Ruby, i tempi di caricamento per le librerie come gli adattatori di database tendono ad essere non banali. E francamente, Sinatra è forse 5 minuti in più di setup rispetto a CGI, e molto più facile da usare. Se trascorri più di un'ora di lavoro su questo progetto, ti prometto che Sinatra ti farà risparmiare tempo, anche con la curva di apprendimento. –

+0

Hmm ... dovrei probabilmente notare ... sono 5 minuti di tempo per me. La prima volta sarà probabilmente più lunga perché non hai ancora installato Passenger. –

0

Penso che potresti voler esaminare Rack. Ti permette di fare il genere di cose di cui parli e alza le spalle dal peso di strutture come Rails o Merb. Le applicazioni rack possono essere ospitate in un luogo come Heroku.

+0

Heroku sembra interessante, ma mi sono imbattuto in un problema su Windows con il comando 'heroku create' che mi diceva 'Nessuna chiave pubblica ssh trovata in ... Si potrebbe voler specificare il percorso completo per il file di chiavi.' – LoveMeSomeCode

+0

Mi dispiace amico ...Sono su un Mac quindi non l'ho mai usato da Windows ... –

+0

Non ho nemmeno usato la versione di Windows, ma avrei votato per Heroku. Hanno una versione gratuita kickass fino a quando non sei pronto per l'aggiornamento. –