3 Réponses :


7
votes

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.


1 commentaires

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.



12
votes

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.

Dans mon expérience, il est beaucoup plus facile d'utiliser et de configurer que Apache & Mod_WSGI, ainsi que les autres configurations similaires.

Edit / Update: En résumé des commentaires ci-dessous, Heroku utilise déjà Nginx comme proxy inverse


10 commentaires

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 , 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


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.



1
votes

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 offre une comparaison entre Gunicorn, UWSGI et Django's Developer Server.


0 commentaires