web-dev-qa-db-fra.com

Définition du port du serveur node.js sur Heroku

J'ai lancé un serveur node.js avec la ligne suivante pour définir le port:

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

Cela signifie que vous devez lire la variable PORT env ou la valeur par défaut 8080, comme cela se produit lorsqu’elle est exécutée localement. Aucun des deux ne se produit sur Heroku et le serveur utilise toujours le port par défaut 80. Avez-vous une idée de la façon de le changer?

heroku config
PORT: 8080
26
Crocodile

Tu ne peux pas. Heroku définit la variable PORT que vous êtes censé lier et écoute sur tcp/80.

35
punund

Vous devriez utiliser le port ouvert par heroku comme ceci:

port = process.env.PORT || 80

Il définit le port sur 80 s'il n'a pas déjà été défini.

3
Eric Murimi

Heroku traite les applications Web comme n'importe quelle autre application et ne vous permet pas d'attribuer directement des ports d'écoute. Heroku attribue un port dynamique à votre serveur Web, mais pour y ACCÉDER, vous devez utiliser le port par défaut (80).

Sur Heroku, les applications sont complètement autonomes et ne dépendent pas de injection à l'exécution d'un serveur Web dans l'environnement d'exécution à créer un service Web. Chaque processus Web est simplement lié à un port, et écoute les demandes qui arrivent sur ce port. Le port auquel se lier est attribué par Heroku en tant que variable d’environnement PORT.

Le contrat avec Heroku prévoit que le processus se lie à un port à desservir demandes. Les routeurs Heroku sont ensuite chargés de diriger HTTP demandes au processus sur le bon port.

Référence: Principes de Heroku Runtime - Serveurs Web

0
gomisha

Dans mon cas, heroku écoutait sur le port HTTPS par défaut: 443 et il n'était pas visible via heroku config:get PORT.

0
wscourge