使用openshift托管keystonejs应用程序
-
23-12-2019 - |
题
我一直得到一个503,但在尝试托管我的keystone时,日志中没有错误。js应用程序在openshift上,有没有人成功地与他们一起托管了一个keystone应用程序?在本地主机上一切正常。
我正在使用全新安装的keystone。没有博客或cloudinary的js。
解决方案
你提供的信息很少,给你一个明确的答案。你传递给哪些选项 keystone.init()
?你在用吗? dotenv
?如果是这样,你在那里设置什么?您是否使用以下方法设置了任何环境变量 rhc set-env
?
我问,因为一个常见的(虽然不是迄今为止唯一的)在节点503错误的罪魁祸首。OpenShift上的js应用程序是一个端口号复盖OpenShift的。基斯通看 process.env.PORT
在它看之前 process.env.OPENSHIFT_INTERNAL_PORT
.所以,如果你有 PORT
设置在您的 .env
或与 rhc set-env
它将优先于 OPENSHIFT_INTERNAL_PORT
.
我遇到了一个类似的问题 KeystoneJS谷歌集团.在另一种情况下,开发人员已经将MONGODB墨盒添加到他的应用程序中,但没有在Keystone中设置墨盒的连接字符串。
如果这也是你的情况,你需要设置梯形 mongo
选择在 Keystone.init()
或使用 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 url(例如 mongodb://127.6.85.129:27017/
).
这些只是我最好的猜测,因为你的问题在细节上有点薄。您可能需要发布更多细节,以便我们更准确地评估您的问题。