Новое приложение OpenShift Scalable Rails 4 делает сервер 503 недоступным

Несколько месяцев назад я успешно развернул одноранговое приложение для рельсов на openshift. Я сейчас пытаюсь развернуть масштабируемое приложение. После настройки приложения, соединения с git, продвижения минималистского проекта в openshift, я получаю ошибку 503 Server Unavailable. После долгих исследований я полагаю, что моя проблема может быть связана с HAProxy. В следующем посте мы подробно расскажем о haproxy и работе с cfg. У меня есть те же механизмы DOWN для моего local-gear и backend, работа с изменениями, как предложено в файле haproxy.cfg, не решила мою проблему, но перечисленное сообщение в блоге относится к проекту Java, поэтому не сравнивались те же среды,

Приложение работает, как и ожидалось, на моем локальном хосте, и через ssh через приложение ssh я могу запускать необходимые грабли, выполнять миграции, а что нет.

Кто-нибудь еще сталкивался с подобной проблемой? Если так, кто-нибудь был в состоянии исправить проблему?

2 ответа

Решение

Вопрос мертв, но все равно приходилось разбираться. Так что сделка на тот случай, если она может кому-то помочь. В основном я обнаружил две вещи, которые вызывают проблемы в масштабируемом приложении rails 4.1.x.

  • На сегодня должно быть gem 'rake' определяется в Gemfile (он будет работать локально без определенных граблей, но не на openshift). Если вы видите некоторые 'block in materialize': Could not find rake-10.4.2 in any of the sources (Bundler::GemNotFound) ошибка вот наверное

  • Вы должны определить свой корневой маршрут в routes.rbвот так например: root 'users#index' - балансировщик haproxy не запустит ваш рубиновый механизм без определения корневого маршрута. Если вы видите некоторые Layer7 wrong status, code: 404 ошибка вот наверное

Если вам нужна дополнительная отладка, попробуйте http://yourappname-yourdomainname.rhcloud.com/haproxy-status/, Там вы можете увидеть ваши механизмы и их реальное состояние.

Также убедитесь, что у вас есть правильная конфигурация базы данных в database.yml, Если параметры неверны, передача - в большинстве случаев - не запускается. (Лучший подход - поместить туда исходный конфиг sqlite3 для тестирования, и как только все снова заработает, перейдите к вашей реальной базе данных.)

Как примечание стороны: На сегодняшний день нет никакой возможности установить рельсы 4.2 на openshift. По крайней мере, без общественного картриджа, но я не нашел ни одного работающего. Если вы видите некоторые ошибки о rack 1.5.2 это, вероятно, означает, что вам нужно перейти на рельсы 4.1.0. Как только все закончится - попробуйте перейти на 4.1.9 и посмотреть, работает ли он.

Удачи!

Я вижу, что вы находитесь на openshift. Вот что я нахожу для работы в 90% случаев:

Сначала перейдите в базовый каталог вашего проекта. Затем добавьте маркер силы чистой сборки

touch .openshift/markers/force_clean_build

Затем передайте этот файл в репозиторий openshift, используя

git add .openshift/markers/force_clean_build
git commit -m "Force clean build"
push -f
Другие вопросы по тегам