Skip to main content
ร‰tant donnรฉ que Replit exรฉcute vos projets dans un environnement cloud, les ports fonctionnent diffรฉremment sur Replit que sur votre ordinateur local. (Si vous avez besoin dโ€™une explication plus basique sur ce que sont les ports TCP, commencez ici.) Sur un ordinateur, vous nโ€™avez quโ€™une seule couche de gestion des ports : vos programmes dรฉfinissent un port sur lequel ils รฉcoutent, et lorsque du trafic arrive sur ce port depuis internet, il est acheminรฉ vers le processus appropriรฉ.
ordinateur
La partie 0.0.0.0 est lโ€™adresse, ou hรดte. Si un processus รฉcoute sur 0.0.0.0, cela signifie quโ€™il doit รฉcouter sur chaque interface rรฉseau โ€” ce qui signifie que si un autre ordinateur (sur internet) envoie une requรชte ร  lโ€™adresse IP de votre ordinateur, il la verra. Ainsi, รฉcouter sur 0.0.0.0 signifie que ces processus sont accessibles ร  lโ€™internet public (si votre ordinateur est connectรฉ). La plupart des frameworks de programmation nโ€™รฉcoutent pas sur 0.0.0.0 lors du dรฉveloppement, car vous ne souhaitez pas nรฉcessairement exposer votre travail au public pendant que vous y travaillez, pour des raisons de confidentialitรฉ et de sรฉcuritรฉ. Au lieu de cela, ils รฉcoutent sur une adresse diffรฉrente โ€” 127.0.0.1, autrement connue sous le nom de localhost. Cela signifie que seul cet ordinateur peut effectuer des requรชtes sur ce port.
Les ports localhost ne sont visibles que sur l'ordinateur qui les hรฉberge.
Sur Replit, pour quโ€™un processus que vous exรฉcutez soit accessible dans la webview ou via une requรชte externe, il doit avoir un port externe dรฉfini. En effet, le ยซ port interne ยป que les processus utilisent typiquement nโ€™est visible que depuis lโ€™intรฉrieur de lโ€™environnement cloud en bac ร  sable que Replit fournit. Ce port interne doit รชtre connectรฉ ร  un port accessible de lโ€™extรฉrieur pour envoyer le bon trafic ร  vos programmes. Mรชme si votre processus รฉcoute sur un port normalement disponible au public comme 0.0.0.0, il doit toujours รชtre liรฉ ร  un port externe.
Les ports externes redirigent le trafic vers les ports internes, sur lesquels les programmes รฉcoutent.
Replit fait cela en liant les ports externes ร  des ports internes spรฉcifiques โ€” par exemple, dans le diagramme ci-dessus, le port externe :80 est liรฉ au port interne :3000. Cela signifie que tout trafic que lโ€™application Replit reรงoit sur le port 80 ira au port interne 3000. Cette configuration est capturรฉe dans la section [[ports]] du fichier de configuration .replit. Par dรฉfaut, Replit lie le premier port que vous ouvrez au port externe par dรฉfaut 80, ce qui permet ร  ce processus dโ€™รชtre disponible au domaine sans adresse de port (par exemple customdomain.com/ au lieu de customdomain.com:3000/). Les ports internes supplรฉmentaires ouverts sont liรฉs ร  dโ€™autres ports externes disponibles (voir la liste complรจte ci-dessous).

Aperรงu

Dans lโ€™outil Aperรงu, vous pouvez modifier quel port externe la webview affiche en cliquant sur le domaine et en sรฉlectionnant un port diffรฉrent. Vous pouvez รฉgalement ouvrir lโ€™outil rรฉseau depuis lโ€™icรดne ยซ engrenage ยป pour plus de dรฉtails.
Cliquer sur le domaine dans la webview vous permettra de choisir quel port afficher.

Port par dรฉfaut

Le port :80 est le ยซ port par dรฉfaut ยป pour le trafic http, donc le trafic http envoyรฉ au domaine racine sera automatiquement acheminรฉ vers le port 80. Le chemin du port nโ€™est pas affichรฉ dans lโ€™URL pour le port 80 pour cette raison. Les ports autres que :80 apparaรฎtront dans le chemin du domaine (par exemple customdomain.com:4200/). (Replit fournit TLS par dรฉfaut, donc il sera techniquement sur le port 443, qui est le port par dรฉfaut pour https. ร€ toutes fins pratiques, vous pouvez les traiter comme interchangeables.)

Outil rรฉseau

Pour plus de dรฉtails sur la configuration des ports et la mise en rรฉseau, vous pouvez ouvrir lโ€™outil rรฉseau. Il affiche lโ€™รฉtat des ports ouverts dans votre application Replit, ร  quel port externe ils sont liรฉs, et vous permet dโ€™ajouter ou de supprimer une configuration.
L'outil rรฉseau affiche votre configuration de ports.

Publication

Les dรฉploiements Autoscale et Reserved VM ne prennent en charge quโ€™un seul port externe exposรฉ, et le port interne correspondant ne doit pas utiliser localhost. Si vous exposez plus de ports, ou exposez un seul port sur localhost, votre application publiรฉe รฉchouera. Un moyen facile de sโ€™assurer que vos dรฉploiements Autoscale fonctionnent comme prรฉvu est de supprimer toutes les entrรฉes externalPort pour les ports dans votre configuration sauf le port pour le service avec lequel vous souhaitez interagir depuis internet.

Dรฉbogage

Une raison courante pour laquelle quelque chose pourrait ne pas fonctionner comme prรฉvu est que, bien que votre configuration de port semble correcte, votre programme รฉcoute en rรฉalitรฉ sur un port diffรฉrent. Par exemple, si votre configuration est :
[[ports]]
internalPort = 3000
externalPort = 80
Alors le trafic internet vers le port 80 ira au port interne 3000. Cependant, si votre programme nโ€™รฉcoute pas sur le port 3000, mais sur autre chose (comme 8080), il semblera quโ€™aucun trafic ne passe. Cela peut se produire si vous changez le port dans votre code sans changer le port correspondant dans votre configuration, ou si vous copiez-collez une configuration dโ€™un projet ร  un autre.
Les programmes peuvent changer les ports sur lesquels ils รฉcoutent.
Chaque framework a des ports par dรฉfaut diffรฉrents sur lesquels il รฉcoute โ€” par exemple, Flask utilise le 5000, react le 3000 et laravel le 8000. Assurez-vous que le bon port est configurรฉ !

Prรฉfรฉrences

Replit lie automatiquement les ports ouverts dans votre application Replit aux ports externes disponibles lorsquโ€™ils sont ouverts, et enregistre cette liaison dans le fichier de configuration .replit. Cependant, cela ne se produit pas par dรฉfaut pour les ports internes qui sโ€™ouvrent sur localhost, car les services qui sโ€™exรฉcutent habituellement sur localhost supposent gรฉnรฉralement quโ€™ils ne seront accessibles que sur le mรชme ordinateur que le processus en cours dโ€™exรฉcution (les ports localhost ne sont visibles que pour le mรชme ordinateur exรฉcutant le processus). Cela signifie que ces services sont souvent moins sรฉcurisรฉs que les services conรงus en supposant quโ€™ils seront disponibles sur lโ€™internet public. Vous pouvez toujours remplacer cela en dรฉfinissant lโ€™option de configuration exposeLocalhost ร  true pour le port que vous souhaitez exposer. Si vous souhaitez toujours exposer les ports localhost par dรฉfaut, vous pouvez dรฉfinir votre paramรจtre ยซ transfert automatique de port ยป dans lโ€™outil Paramรจtres utilisateur sur ยซ Tous les ports ยป. Si vous souhaitez ne jamais crรฉer de configuration pour les ports ouverts, et contrรดler manuellement la configuration des ports pour toutes vos applications Replit, vous pouvez dรฉfinir cela sur ยซ jamais ยป.

Ports pris en charge

Lโ€™application Replit dรฉfinira le port 80 comme port externe par dรฉfaut lorsque le premier port sโ€™ouvre. Une application Replit peut exposer 3000, 3001, 3002, 3003, 4200, 5000, 5173, 6000, 6800, 8000, 8008, 8080, 8081 comme ports externes supplรฉmentaires. Les ports 22 et 8283 ne sont pas transfรฉrables, car ils sont utilisรฉs en interne.

Configuration .replit [[ports]]

Type : {localPort, externalPort, exposeLocalhost} La configuration [[ports]] vous permet de configurer quel port HTTP exposer pour votre sortie web. Par dรฉfaut, tout port HTTP exposรฉ avec lโ€™hรดte 0.0.0.0 sera exposรฉ comme sortie web de votre application Replit. Des ports supplรฉmentaires peuvent รชtre servis sans remplacer le port par dรฉfaut en ajoutant une nouvelle entrรฉe [[ports]] ร  votre fichier .replit. Vous devez spรฉcifier ร  la fois une entrรฉe localPort et externalPort. Vous pouvez ajouter plusieurs ports supplรฉmentaires en ajoutant plusieurs entrรฉes [[ports]] ร  votre fichier .replit comme dรฉfini ci-dessous.

localPort

Dรฉtermine quel port Replit liera ร  un port externe.

externalPort

Dรฉtermine quel port doit รชtre exposรฉ comme port accessible publiquement pour ce port local.
[[ports]]
localPort = 3000
externalPort = 80
Si vous souhaitez ne jamais exposer un port particulier, vous pouvez conserver la configuration localPort mais simplement ne pas ajouter dโ€™externalPort :
[[ports]]
localPort = 3000

exposeLocalhost

Dรฉtermine si un port interne utilisant localhost peut รชtre liรฉ ร  un port externe. Peut รชtre true, false, ou null.
[[ports]]
localPort = 3000
externalPort = 80
exposeLocalhost = true