webentwicklung-frage-antwort-db.com.de

Festlegen des Ports für den node.js-Server auf Heroku

Ich habe einen node.js-Server mit der folgenden Zeile gestartet, um den Port festzulegen:

app.set('port', process.env.PORT || 8080);

Dies bedeutet, dass entweder die Env-Variable PORT gelesen oder der Standardwert 8080 verwendet werden sollte, wie dies bei einer lokalen Ausführung der Fall ist. Keiner von ihnen findet auf Heroku statt, und der Server verwendet immer den Standardport 80. Haben Sie eine Idee, wie Sie ihn ändern können?

heroku config
PORT: 8080
26
Crocodile

Du kannst nicht Heroku legt die PORT-Variable fest, die Sie binden sollen, und lauscht auf TCP/80.

35
punund

Sie sollten den von heroku geöffneten Port wie folgt verwenden:

port = process.env.PORT || 80

Der Port wird auf 80 gesetzt, wenn er nicht bereits festgelegt wurde

3
Eric Murimi

Heroku behandelt Web-Apps wie jede andere App und erlaubt Ihnen nicht, Listen-Ports direkt zuzuweisen. Ihrem Webserver wird von Heroku ein dynamischer Port zugewiesen. Um auf diesen zuzugreifen, müssen Sie den Standardport (80) verwenden.

Auf Heroku sind Apps vollständig in sich abgeschlossen und verlassen sich nicht auf Laufzeitinjektion eines Webservers in die Ausführungsumgebung nach Erstellen Sie einen Web-Service. Jeder Webprozess bindet einfach an einen Port, und wartet auf Anfragen, die an diesem Port eingehen. Der Port, an den gebunden werden soll wird von Heroku als PORT-Umgebungsvariable zugewiesen.

Der Vertrag mit Heroku sieht vor, dass der Prozess an einen Port gebunden ist, der dienen soll Anfragen. Die Router von Heroku sind dann für die Weiterleitung von HTTP verantwortlich Anfragen an den Prozess am richtigen Port.

Referenz: Heroku-Laufzeitprinzipien - Webserver

0
gomisha

In meinem Fall hörte Heroku den Standard-HTTPS-Port: 443 und war über heroku config:get PORT nicht sichtbar.

0
wscourge