尝试在 openshift 上托管我的 keystone.js 应用程序时,我不断收到 503 但日志中没有错误,有没有人成功地用他们托管过 keystone 应用程序?在本地主机上一切正常。
我正在使用全新安装的 keystone.js,没有博客或 cloudinary。
尝试在 openshift 上托管我的 keystone.js 应用程序时,我不断收到 503 但日志中没有错误,有没有人成功地用他们托管过 keystone 应用程序?在本地主机上一切正常。
我正在使用全新安装的 keystone.js,没有博客或 cloudinary。
您提供的信息很少,无法给出明确的答案。你传递给什么选项keystone.init()
?你在用dotenv
吗?如果是这样,你在那里设置什么?您是否使用设置了任何环境变量rhc set-env
?
我问是因为 OpenShift 上的 Node.js 应用程序中的 503 错误的一个常见(尽管不是迄今为止唯一的)罪魁祸首是覆盖 OpenShift 的端口号。Keystone 先看process.env.PORT
再看process.env.OPENSHIFT_INTERNAL_PORT
。所以,如果你PORT
设置了 your .env
or 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/
)。
这些只是我最好的猜测,因为你的问题在细节上有点薄。您可能想发布更多细节,以便我们更准确地评估您的问题。