Comment peut-on diagnostiquer une erreur 500 sur Heroku quand il n'y a pas de message d'erreur dans les logs?
J'ai une application Rails sur Heroku qui est de servir de 500 erreurs à des intervalles aléatoires. Pages Web affichera "erreur Interne du serveur" en texte brut, au lieu de l'habituel "Nous sommes désolés. Quelque chose s'est mal passé." page. Lorsque j'actualise la page, il fonctionne très bien.
Les journaux de ne pas me montrer un message d'erreur, juste
» 14:20:34.107 2013-10-11 12:20:33.763690+00:00 heroku router - - at=info method=HEAD path=/host=www.mydomain.com fwd="184.73.237.85/ec2-184-73-237-85.compute-1.amazonaws.com" dyno=web.1 connect=1ms service=63ms status=200 bytes=0
» 14:21:03.957 2013-10-11 12:21:03.561867+00:00 heroku router - - at=info method=GET path=/host=www.mydomain.com fwd="50.112.95.211/ec2-50-112-95-211.us-west-2.compute.amazonaws.com" dyno=web.1 connect=0ms service=1ms status=500 bytes=21
Soutien m'a dit de regarder demande de files d'attente dans la Nouvelle Relique, mais la Nouvelle Relique montre qu'une grosse marque rouge disant que le serveur est en panne (même si le site fonctionne bien lorsque actualisé).
Avec pas de messages d'erreur, je suis à une perte pour la façon de diagnostiquer ce problème.
- Vous pouvez essayer de Fiddler...
- avez-vous essayez de redémarrer l'application? parfois, l'erreur est en cours de démarrage.
- pourriez vous m'expliquer comment fiddler pourrait être utilisé dans ce cas?
- Non, je ne peux pas vraiment...mais si c'est une application web, et son retour sur 500, vous devriez être en mesure de voir les en-têtes dans un violon.
- J'ai juste essayé de redémarrer l'application à quelques reprises et il ne semble pas déclencher l'erreur 500.
- vous pouvez simplement utiliser
curl -I
pour qui? - Juste une possibilité, ce n'est pas une responsabilité de montrer OP un outil qui peut aider lui/elle.
- Des outils comme fiddler ne vous aidera que si l'OP peut reproduire le problème. Je suis en supposant que @lala est simplement de travailler à partir de fichiers journaux ici.
Vous devez vous connecter pour publier un commentaire.
Dans Heroku, je diagnostiquer des erreurs avec LogEntries - son beaucoup plus facile que le Heroku journaux pour diagnostiquer des erreurs.
Ce que j'ai à faire est de charger l'application, et dans le LogEntries panneau, allez à "Vivre (Beta)". Cela montre toutes les erreurs qui apparaissent, et sont généralement très explicative
Juste quelque chose qui pourrait l'aider à
Essayez d'ajouter le
rails_12factor
gem pour obtenir une mesure plus robuste journal d'erreur ( uniquement si vous utilisez Heroku ).Assurez-vous que vous
rake db:migrate
votre base de données sur Heroku avecheroku run rake db:migrate
<%console%>
sur ma page index. Dieu merci, pour ce petit bijou.La solution qui a fonctionné pour moi lors du déploiement de mon Django apps pour Heroku est d'aller dans le production.py fichier et modifier le code
DEBUG = FALSE
àDEBUG = TRUE
. De cette façon, vous devriez être en mesure de voir les erreurs que Django affiche. Être conscient qu'une fois que vous avez trouvé l'erreur et l'ont fait les corrections, ce paramètre doit être modifié pour revenir àFALSE
.