我一直得到一个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/).

这些只是我最好的猜测,因为你的问题在细节上有点薄。您可能需要发布更多细节,以便我们更准确地评估您的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top