几个月前,我在openshift上成功部署了rails单齿轮应用程序。我现在正在尝试部署可伸缩的应用程序。设置应用程序,连接git,将极简主义项目推送到openshift后,我收到503 Server Unavailable错误。经过相当多的研究后,我推测我的问题可能与HAProxy有关。以下帖子here详细介绍了haproxy并处理了cfg。我的本地齿轮和后端我有相同的DOWN齿轮,根据haproxy.cfg文件的建议进行修改并没有解决我的问题,但列出的博客文章指的是Java项目,因此没有比较相同的环境。
应用程序在我的本地主机上按预期运行,并且通过ssh将rhc运行到应用程序中,我可以运行必要的rake任务,迁移以及不需要的任务。
还有其他人遇到过类似的问题吗?如果是这样,任何人都能纠正这个问题吗?
答案 0 :(得分:1)
问题已经死了,但无论如何都要弄清楚。所以这是交易以防万一它可以帮助某人。基本上我发现了两个导致scallable rails 4.1.x应用程序出现问题的东西。
至于今天,gem 'rake'
中必须定义Gemfile
(它将在没有定义rake的情况下在本地工作,但不会在openshift中定义)。如果你看到一些'block in materialize': Could not find rake-10.4.2 in any of the sources (Bundler::GemNotFound)
错误可能就是它。
您必须在routes.rb
中定义根路由,例如:root 'users#index'
- haproxy balancer不会在未定义根路由的情况下启动您的ruby设备。如果你看到一些Layer7 wrong status, code: 404
错误可能就是它。
如果您需要进一步调试,请尝试转到http://yourappname-yourdomainname.rhcloud.com/haproxy-status/
。在那里,您可以看到您的齿轮及其真实的状态。
还要确保在database.yml
中配置了正确的数据库。如果参数不正确,齿轮 - 在大多数情况下 - 将无法启动。 (最好的方法是将初始的sqlite3配置用于测试,一旦所有内容再次启动,请使用您的真实数据库。)
作为旁注:至于今天,没有选择在openshift上安装rails 4.2。至少没有社区盒式磁带,但我没有找到任何工作的盒式磁带。如果您看到有关rack 1.5.2
的错误,则可能意味着您需要降级到rails 4.1.0。一切都结束了 - 尝试转到4.1.9并查看它是否有效。
答案 1 :(得分:0)
我看到你正在进行openhift。以下是我发现在90%的时间内工作:
首先,转到项目的基本目录。然后添加强制清除构建标记
touch .openshift/markers/force_clean_build
然后使用
将此文件提交到您的openshift存储库git add .openshift/markers/force_clean_build
git commit -m "Force clean build"
push -f