J'ai récemment passé à Django pour une application Web Je me développe et j'ai suivi les instructions de Heroku < / a> Pour obtenir une application Django en cours d'exécution sur Heroku. J'ai un environnement virtuel dans lequel mon application est développée et j'utilise GIT pour le contrôle de la version et pour pousser à Heroku. Le lien ci-dessus suggère que je m'interrobine Gunicorn: P>
Les exemples ci-dessus ont utilisé le serveur HTTP par défaut pour Django. Pour
Applications de production, vous souhaiterez peut-être utiliser un plus prêt à la production.
Webserver, tel que Tornado, le serveur WSGI de Gevent ou Gunicorn. P>
blockQuote>
Ils marchent ensuite l'utilisateur en installant GunCorn. P>
Ma question est la suivante: quels problèmes pourrais-je rencontrer si je saute cette étape et rester avec la valeur par défaut? Quels avantages gunlicorn donneront-moi? P>
3 Réponses :
Bien meilleure performance, et probablement mieux la sécurité et la stabilité, aussi. Le serveur Web de développement de Django (utilisé par Heroku par défaut) n'est pas vraiment conçu pour servir les applications de production. P>
Merci. Je vais essayer de mettre en place mon application pour courir GunCorn, dans ce cas. J'espère que cela ne me demande pas de commencer à payer Heroku, car je suis toujours au début du développement.
Gunicorn est la production prête et très facile à utiliser. Je l'utilise pour mes sites Web. Vous devez généralement l'exécuter via un proxy inverse comme Nginx. Je ne suis pas sûr de ce que Heroku utilise. Vous devriez vraiment l'essayer. P>
Dans mon expérience, il est beaucoup plus facile d'utiliser et de configurer que Apache & Mod_WSGI, ainsi que les autres configurations similaires. P>
Toutes les chances que vous puissiez expliquer brièvement ce qu'est-ce qu'un "proxy inverse" est / est utilisé? Quels sont les dangers si je n'utilise pas nginx?
Ce Publication du blog est l'endroit où J'ai appris à propos de Gunicorn et de Nginx et j'ai été accroché. Le proxy inverse vous protège de certains types de déni d'attaques de service et NGinx peut également être utilisé pour organiser des fichiers statiques très efficacement. Lorsque vous mettez un numéro IP et de port dans votre configuration de GunCorn, est-ce votre adresse IP ou une adresse IP interne (127.0.0.1)? Heroku peut-être déjà faire une sorte de proxy déjà. Je n'ai aucune idée de ce que ça marche
Ceci POST explique comment fonctionne Heroku, dans la mesure où l'écrivain peut figurer dehors. Il utilise déjà Nginx Proxies inverse
Wow, beau lien. Dieu merci pour quora. Je suppose que je ne m'inquiéterai pas pour Nginx depuis que je déploie sur Heroku.
Yup, mais vous devez absolument utiliser un autre serveur HTTP autre que la valeur par défaut. Donc, un coup de feu ou l'une des méthodes de la WSGI documentées.
Merci. Oui, j'essaie d'utiliser des hommes de gunlorn. Je posterai sur Stack Exchange bientôt sur la raison pour laquelle je ne peux pas voir Gunicorn Courir dans mes journaux Heroku ...
il ne fonctionne pas tant que vous n'utilisez que la commande manage.py run_gunicorn code>, si cela vous aide à dépanner
Ok, je vois ça courir maintenant. Je pense que Heroku exécute automatiquement cette commande maintenant que j'ai un procfile contenant la ligne suivante: Web: python myApp / manage.py run_gunicorn -b "0.0.0.0:0h:" -w 3 code>
FYI - HEROKU n'utilise pas NGinx pour Python. devcenter.heroku.com/articles/...
@JODILE BONE TROUVER. Mais juste pour clarifier le service Gunicorn WSGI. Il ne devrait pas vraiment y avoir de python pur dans un projet Django moyen qui interagirait directement avec le Web.
Le serveur de Django est un serveur de développement. Il pèse et facile à utiliser mais ne doit pas être utilisé dans la production car il n'est pas prêt à être prêt. Il ne peut pas gérer de nombreuses demandes. Ce lien A> offre une comparaison entre Gunicorn, UWSGI et Django's Developer Server. P>