Ghost (блог NodeJS) в Azure: устранение неполадок с периодической ошибкой 500

Предпосылки / Проблема

Возникла странная проблема с ведением блога Ghost в Azure. Некоторое время сайт работает нормально, но время от времени я получаю сообщение об ошибке 500 без дополнительной информации. Следующий запрос всегда оказывается успешным (пока что в тестах).

Кажется, что ошибка возникает после периода бездействия. Поскольку в настоящее время я только настраиваюсь, я использую экземпляр Azure Free, поэтому мне интересно, не вызывает ли это какая-то экономия ресурсов за кулисами (что будет облегчено при обновлении).

Есть идеи, что может вызвать эту проблему? Я как бы не понимаю, с чего начать, поскольку журналы не обязательно помогают мне в этом случае. Я новичок в NodeJS (и nodeJS в Azure), и поскольку это мой первый набег, любые советы / рекомендации о том, где искать, также будут полезны.

Некоторые конкретные вопросы:

  • Когда я получаю такую ​​ошибку, могу ли я куда-нибудь посмотреть какие-либо выходные данные, или есть ли гарантия, что Node на самом деле что-то не выводил?
  • Имеется ли в бесплатных экземплярах Azure какое-то сохранение ресурсов, которое может привести к закрытию приложения (и, таким образом, я могу видеть эти ошибки только после периода бездействия)?

Полная ошибка

Полный текст ошибки ниже (по этой причине я включил отладку):

iisnode обнаружил ошибку при обработке запроса.

HRESULT: 0x2

Статус HTTP: 500

Причина HTTP: внутренняя ошибка сервера

Вы получаете этот ответ HTTP 200, потому что для параметра конфигурации system.webServer/iisnode/@devErrorsEnabled установлено значение «true».

Помимо журнала stdout и stderr процесса node.exe, рассмотрите возможность использования отладки и трассировки ETW для дальнейшей диагностики проблемы.

Процесс node.exe не записал никакой информации в stderr или iisnode не смог получить эту информацию. Частая причина заключается в том, что модуль iisnode не может создать файл журнала для захвата вывода stdout и stderr из node.exe. Убедитесь, что удостоверение пула приложений IIS, в котором запущено приложение node.js, имеет разрешения на чтение и запись в каталог на сервере, где находится приложение node.js. В качестве альтернативы вы можете отключить ведение журнала, установив для элемента system.webServer/iisnode/@loggingEnabled в web.config значение false.


person SeanKilleen    schedule 26.07.2014    source источник
comment
Вы используете Ghost на веб-сайтах Azure, облачной службе или виртуальной машине?   -  person Shawn Miller    schedule 28.07.2014
comment
В настоящее время он запущен на лазурном веб-сайте в бесплатном режиме (планируйте обновление перед запуском). Развертывание через git (чтобы он выполнял шаги Azure Kudu, выполнял работу с узлами и т. Д.)   -  person SeanKilleen    schedule 28.07.2014
comment
Интересно, узнали ли вы что-нибудь об этих ошибках, потому что я тоже их получаю.   -  person Stan Bashtavenko    schedule 01.01.2015


Ответы (1)


Я думаю, что это может быть что-то в веб-конфигурации Azure, а не сам Ghost. Поэтому ищите журналы, основанные на этом, потому что Ghost не выдает эту ошибку. Я нашел этот вопрос, который может вам помочь:

Как отладить внутреннюю ошибку сервера Azure 500

Удачи!

person howtoinstallghost    schedule 27.07.2014