Новое приложение 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