当我尝试在openshift上托管我的keystone.js应用程序时,我一直在获取503但没有错误,是否有人成功托管了一个keystone应用程序?在localhost上一切正常。
我正在使用全新安装的keystone.js,没有博客或cloudinary。
答案 0 :(得分:3)
您提供的信息非常少,可以为您提供明确的答案。您传递给keystone.init()
的选项是什么?你在使用dotenv
吗?如果是这样,你在那里设置什么?您是否使用rhc set-env
设置了任何环境变量?
我问,因为OpenShift上Node.js应用程序中503错误的常见(尽管不是唯一的唯一)罪魁祸首是覆盖OpenShift的端口号。 Keystone在查看process.env.PORT
之前会查看process.env.OPENSHIFT_INTERNAL_PORT
。因此,如果您在PORT
或.env
设置rhc set-env
,则优先于OPENSHIFT_INTERNAL_PORT
。
我在KeystoneJS Google Group上遇到了类似的问题。在另一个案例中,开发人员已将MONGODB盒式磁带添加到他的应用程序中,但未在Keystone中设置盒式磁带的连接字符串。
如果您也是这种情况,则需要在mongo
或Keystone.init()
中设置Keystone Keystone.set('mongo', 'connection_sring')
选项。创建盒式磁带时,您会获得一个URL和一些凭据。 OpenShit在环境变量中将这些传递给您的应用程序。您可以按如下方式构建mongo连接字符串:
var connectionString = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" + process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" + process.env.OPENSHIFT_MONGODB_DB_HOST + '/' + process.env.OPENSHIFT_APP_NAME;
keystone.set('mongo', connectionString);
or
keystone.init({
...
mongo: connectionString,
...
});
或者您可以使用rhc set-env
设置MONGO
环境变量,如下所示:
rhc set-env MONGO=http://{username}:{password}@{connection url}/{dbname} -a your_app_name
上面的connection url
是您在创建墨盒时从OpenShift获得的mongodb://127.6.85.129:27017/
。如果看起来像标准的MONGODB网址(例如{{1}})。
这些只是我最好的猜测,因为你的问题在细节上有点薄弱。您可能希望发布更具体的内容,以便我们更准确地评估您的问题。