Frage

Beim Versuch, meine keystone.js-App auf OpenShift zu hosten, erhalte ich ständig eine 503, aber keine Fehler im Protokoll. Hat jemand erfolgreich eine Keystone-App damit gehostet?Auf localhost funktioniert alles einwandfrei.

Ich verwende eine Neuinstallation von keystone.js ohne Blog oder Cloudinary.

War es hilfreich?

Lösung

Sie liefern nur sehr wenige Informationen, um eine endgültige Antwort zu erhalten.Zu welchen Optionen wechseln Sie? keystone.init()?Benutzt du dotenv?Wenn ja, was stellen Sie dort ein?Haben Sie mithilfe von Umgebungsvariablen festgelegt? rhc set-env?

Ich frage, weil ein häufiger (wenn auch bei weitem nicht der einzige) Grund für 503-Fehler in Node.js-Anwendungen auf OpenShift eine Portnummer ist, die die von OpenShift überschreibt.Keystone schaut zu process.env.PORT bevor es anschaut process.env.OPENSHIFT_INTERNAL_PORT.Also, wenn ja PORT auf deine einstellen .env oder mit rhc set-env es wird Vorrang haben OPENSHIFT_INTERNAL_PORT.

Ich bin auf eine ähnliche Frage gestoßen KeystoneJS Google Group.In diesem anderen Fall hatte der Entwickler seiner App eine MONGODB-Cartridge hinzugefügt, aber die Verbindungszeichenfolge für die Cartridge in Keystone nicht festgelegt.

Wenn dies auch bei Ihnen der Fall ist, müssen Sie den Keystone festlegen mongo Option in Keystone.init() oder verwenden Keystone.set('mongo', 'connection_sring').Als Sie die Kassette erstellt haben, haben Sie eine URL und einige Anmeldeinformationen erhalten.OpenShit übergibt diese in Umgebungsvariablen an Ihre Anwendung.Sie können die Mongo-Verbindungszeichenfolge wie folgt erstellen:

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,
  ...
});

Oder Sie können verwenden rhc set-env um das einzustellen MONGO Umgebungsvariable wie folgt:

rhc set-env MONGO=http://{username}:{password}@{connection url}/{dbname} -a your_app_name

Der connection url Oben ist die Datei, die Sie von OpenShift erhalten haben, als Sie die Kassette erstellt haben.Wenn es wie eine Standard-MONGODB-URL aussieht (z. B. mongodb://127.6.85.129:27017/).

Dies sind nur meine besten Vermutungen, da Ihre Frage nur wenige Details enthält.Möglicherweise möchten Sie weitere Einzelheiten veröffentlichen, damit wir Ihr Problem genauer beurteilen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top