1

尝试在 openshift 上托管我的 keystone.js 应用程序时,我不断收到 503 但日志中没有错误,有没有人成功地用他们托管过 keystone 应用程序?在本地主机上一切正常。

我正在使用全新安装的 keystone.js,没有博客或 cloudinary。

4

1 回答 1

3

您提供的信息很少,无法给出明确的答案。你传递给什么选项keystone.init()?你在用dotenv吗?如果是这样,你在那里设置什么?您是否使用设置了任何环境变量rhc set-env

我问是因为 OpenShift 上的 Node.js 应用程序中的 503 错误的一个常见(尽管不是迄今为止唯一的)罪魁祸首是覆盖 OpenShift 的端口号。Keystone 先看process.env.PORT再看process.env.OPENSHIFT_INTERNAL_PORT。所以,如果你PORT设置了 your .envor with rhc set-env,它将优先于OPENSHIFT_INTERNAL_PORT.

我在KeystoneJS Google Group上遇到了类似的问题。在另一种情况下,开发人员在他的应用程序中添加了一个 MONGODB 墨盒,但没有在 Keystone 中设置墨盒的连接字符串。

如果这也是您的情况,您需要在或使用中设置 Keystonemongo选项。创建墨盒时,您会获得一个 url 和一些凭据。OpenShit 在环境变量中将这些传递给您的应用程序。您可以按如下方式构建 mongo 连接字符串:Keystone.init()Keystone.set('mongo', 'connection_sring')

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/)。

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

于 2014-08-01T06:46:07.953 回答