Ho realizzato i progetti per principianti usando manage.py e ora spostato su postgres dopo sqllite. Molti hanno suggerito Gunicorn? Qual è la differenza ?Django: Differenza tra l'utilizzo del server tramite manage.py e altri server come gunicorn ecc. Quale è meglio?
risposta
L'impostazione più comune è nginx e gunicorn. Quindi, prima di parlare di perché gunicorn è consigliato su runserver, Chiariamo subito la differenza tra nginx - perché entrambi sostengono che sono server web :)
Nginx dovrebbe essere il vostro punto di ingresso al pubblico, è il server in ascolto sulla porta 80 (http) e 443 (https). Il motivo principale è il che gestisce le richieste HTTP, che applica i reindirizzamenti, l'autenticazione HTTP se necessario, la gestione dei certificati TSL/SSL e, tra le altre cose, decide dove le tue richieste saranno finalmente disponibili. Per esempio. c'è forse una app node.js che vive su localhost:3000
che attende le richieste su /foo/api
mentre gunicorn sta aspettando allo localhost:8000
per servire la tua fantastica app. Questa funzionalità di proxy delle richieste in entrata ai cosiddetti servizi upstream
(in questo caso node.js e gunicorn) è chiamata reverse-proxy.
GUNICORN è un server che traduce le richieste HTTP in pitone. Ci sono specifiche per quello chiamato WSGI. La build di Django nel webserver fa lo stesso. manage.py runserver
ha come destinazione lo sviluppo (ad es. Riavvio automatico delle modifiche). Gunicorn punta alla produzione. Ha molte funzionalità che mancano nel build nel server. Per esempio. può generare più processi di lavoro per parallelizzare le richieste in entrata a più core CPU, ha una corretta registrazione, è generalmente ottimizzato per la velocità, può essere configurato a gradi molto sottili a seconda della configurazione e viene controllato molto attivamente per problemi di sicurezza.
Ci sono altri web server in competizione con gunicorn, ma gunicorn (originariamente ispirato all'unicorno di ruby) è molto popolare e facile da configurare e quindi non solo un ottimo punto di partenza, ma una soluzione molto professionale che viene utilizzata da progetti molto grandi .
Grazie per la risposta. allora come principiante dovrei svilupparmi sul runserver e spostarmi lentamente verso Gunicorn. :) –
manage.py runserver è solo un server di sviluppo, non è destinato alla produzione in nessuna circostanza. Devi usare qualcosa come Apache, uWSGI, NGINX o qualche altro server per servire il tuo progetto django una volta pronto per l'implementazione.
- 1. Differenza tra server JRE e client JRE
- 2. django: "python manage.py migrate" prendendo ore (e altri comportamenti strani)
- 3. qual è la differenza tra ajax e jquery e quale è meglio?
- 4. differenza tra server Tomcat e il server BEA WebLogic
- 5. asp.net: differenza tra runat = "server" e server controlla
- 6. Differenza tra server Web, contenitore Web e server applicazioni
- 7. Differenza tra chef server e chef repo?
- 8. Qual è la differenza tra Apache Ambari Server e Agent
- 9. Differenza tra web-server e servlet container
- 10. Qual è la differenza tra SQL Server Compact Edition e SQL Server Express Edition?
- 11. Convalida lato server Backbone.js e altri errori lato server
- 12. Tabelle SQL Server: qual è la differenza tra @, # e ##?
- 13. "if" e "#if"; quale è meglio usare
- 14. Glassfish 3.1.2 - Differenza tra default-config e server-config
- 15. Qual è la differenza tra un server basato su thread e un server basato su eventi?
- 16. Differenze tra server applicazioni .NET e server applicazioni Java
- 17. Come arrestare correttamente gunicorn
- 18. Differenza tra numerica, virgola mobile e decimale in SQL Server
- 19. Differenza tra webservice, metodi web e codice lato server?
- 20. Django 1.8 - qual è la differenza tra migrare e makemigrations?
- 21. WebSockets e WSGI insieme tramite Gunicorn
- 22. Django Gunicorn Debug
- 23. Accesso a Django e gunicorn
- 24. Quale è meglio?
- 25. differenza tra node.js HTTP Server, Request, Response e timeout
- 26. Gunicorn e Django con Upstart e Nginx
- 27. C'è una differenza tra ora locale e server
- 28. Differenza tra .bind e altri eventi
- 29. Differenza tra Scrum e altri metodi Agile?
- 30. Differenza tra modello proattivo e modello sincrono nel server Web
Questo è qualcosa a cui non dovresti pensare molto ora dato che sei molto nuovo. Fai andare il tuo progetto quando sei pronto a spingerlo a vivere, quindi concentrati su questo. Puoi usare Heroku e questo ti permetterebbe comunque di implementare facilmente usando il tuo file manage.py. Buona fortuna a te. –
C'è un avvertimento enorme nei documenti che dicono di non usare runserver per la produzione – Sayse