Ciao Ho imparato i binari per l'anno scorso e ho alcune app su Heroku. Quindi per me ho pensato che l'implementazione di app sul world wide web fosse semplice come heroku push
. Tuttavia, ho appena ottenuto il mio primo internato facendo Rails e uno dei miei senior parla di Apache e Nginx e non sono sicuro di come si adattano alla foto, dal momento che pensavo che le app fossero solo la piattaforma di app cloud Rails +. L'ho cercato ma non riesco ancora a capire come e dove influisce il ciclo di vita della mia app. Qualcuno può spiegare cosa/dove/quando utilizzare i server web?Rails: a che cosa servono i server Web (Apache/nginx/passenger)?
risposta
Così hai la tua app Rails, e come sai hai controller e azioni e vista e cosa no.
Quando un utente nel browser accede all'app su Heroku, digita l'URL che punta ai server Heroku.
I server Heroku sono server Web che ascoltano gli utenti che digitano l'URL e li collegano all'applicazione Rails. L'applicazione rails fa la sua parte (ottiene un elenco di post di blog o qualsiasi altra cosa) e il server invia queste informazioni al browser dell'utente.
Hai usato un server web per tutto il tempo, solo che è stato estratto da te e reso super semplice grazie a Heroku.
Così il ciclo di vita è un po 'come questo:
Mentre siete stati costruendo le applicazioni sul computer di sviluppo probabilmente avete venire attraverso il comando rails server
. Questo avvia un programma chiamato WEBrick che è un server web e ascolta sulla porta 3000. Vai alla tua app tramite http://localhost:3000
.
WEBrick ascolta sulla porta 3000 e risponde alle richieste degli utenti, come il comando "hey dammi un elenco di post".
Quando si inserisce il codice in produzione (nella propria esperienza tramite heroku push
) si invia il codice a un provider che si occupa dell'equivalente di produzione di rails server
.
Una configurazione di produzione (di cui parlano i vostri sviluppatori senior) è un po 'più complessa della vostra installazione locale rails server
sul vostro computer di sviluppo.
Nella produzione hai il tuo server Rails (spesso cose come Unicorno, Passeggero) che prende il posto di WEBrick.
In molte impostazioni di produzione, viene utilizzato anche un altro server, ad esempio Apache o nginx, ed è il server a cui l'utente si connette quando accede all'applicazione.
Questo server esiste spesso come un router per capire come gestire i diversi tipi di richieste. Ad esempio, le richieste di file statici (css, immagini, javascript, ecc.) Che sono storted sul server possono essere elaborate direttamente da Apache o nginx, poiché fa un fantastico (e veloce) lavoro di invio di risorse statiche al client.
Altre richieste, ad esempio "ottieni un elenco di tutti i post del blog", vengono trasferite sul server Rails (Unicorno, Passeggero, ecc.) Che a loro volta eseguono il lavoro richiesto e inviano la risposta ad Apache/nginx, che lo invia di nuovo al cliente.
Heroku fa tutto questo per te in un bel pacchetto facile da usare, ma suona come il posto in cui il tuo lavoro lo gestisce da solo, piuttosto che usare Heroku. Hanno creato il proprio gruppo di server Web e faranno a modo loro un equivalente di heroku push
che invierà il codice ai server e si assicureranno che siano pronti per rispondere alle richieste degli utenti.
Spero che questo aiuti!
Heroku è un servizio cloud, il che significa che si occupano di hardware e software che consente di pubblicare senza problemi l'applicazione senza preoccuparsi di ciò che accade dietro le quinte. Quindi l'unica cosa che devi fare è spingere il tuo codice al loro Git e voilà.
D'altra parte, Rails può anche essere implementato su un sistema creato da te completamente da zero, e tu sarai il responsabile non solo dello sviluppo dell'app ma anche della manutenzione del server e della scelta dell'hardware e/o Software. È quindi possibile scegliere tra diversi server di applicazioni in grado di eseguire rails come ngix.
Spero che questo aiuti.
Le pagine Web necessitano di un server Web per renderle disponibili su Internet.
Quindi un sito che è tutto contenuto statico (tutte solo pagine .html) ha solo bisogno di un server web ed è qui che entrano Apace, nginx, ecc. Sono server web.
Quando si utilizzano framework come rails, viene aggiunto un componente aggiuntivo, un server delle applicazioni. Questo pre-processa le pagine usando il framework rails e quindi (ancora) usa il server web sopra menzionato per rendere le pagine finali (che sono ovviamente .html) agli utenti finali attraverso il loro browser.
Passenger Phusion è un server applicazioni che, con le guide, aiuta a gestire e automatizzare la distribuzione del codice.
- 1. A cosa servono i tracepoints?
- 2. Django: A cosa servono esattamente i segnali?
- 3. A cosa servono i namespace? che dire degli usi?
- 4. A cosa servono i puntatori ai puntatori?
- 5. Per cosa servono i finalizzatori?
- 6. A cosa servono questi codici?
- 7. A cosa servono i tipi interi con larghezza minima?
- 8. A cosa servono/lenti gli obiettivi?
- 9. A cosa servono i puntatori ai membri della classe?
- 10. iOS: A cosa servono i profili di provisioning DISTRIBUTION?
- 11. JavaScript: a cosa servono .extend e .prototype?
- 12. A cosa servono gli array ricorsivi?
- 13. A cosa servono le dichiarazioni di dispatcher?
- 14. Che cosa significa eseguire un server Web locale?
- 15. Perché i framework web servono tramite FastCGI/SCGI, piuttosto che HTTP?
- 16. A cosa servono le bandiere di protezione "appop" e "sviluppo"?
- 17. A cosa servono gli alberi di sintassi astratti?
- 18. Domanda dati fetchedresultscontroller di base: a cosa servono le "sezioni"?
- 19. Cosa devo controllare prima che il mio sito web Ruby on Rails venga pubblicato?
- 20. personalizzato semplice server Python HTTP che non servono i file css
- 21. A che cosa servono le proprietà Align e Anchor su TForm?
- 22. A cosa servono i puntatori di funzione e come li utilizzerei?
- 23. Che cosa significano i colori di output nella console di rails e nel log del server di Rails?
- 24. Come si servono i file statici da un server nginx che funge da proxy inverso per un server nodejs?
- 25. Che cosa sono i file .tpl? php, web design
- 26. Che cosa fa Rails ActionController :: Metal
- 27. A cosa corrispondono i dati FFT nell'API Web Audio?
- 28. Parentesi attorno a 0 in "ritorno (0);" dichiarazione nella funzione 'principale' - a cosa servono?
- 29. Cosa devo sapere per contribuire a Rails?
- 30. Che cosa assegna fare in rspec-rails?
grazie mille per la lunga spiegazione! – Edmund
Grazie. La prima volta che ho letto su Passenger/Unicorn facendo il 'lato rotaie del lavoro del server' e Nginx/Apache facendo l'invio dei file. Fino ad ora ero confuso dal fatto che Nginx fosse lo stesso di Passenger ecc. E perché nel Production fossero necessari due diversi componenti del server. –