2 votes

Comprendre la configuration du réseau pour Vapor+nginx

J'ai mon application Vapor MyApp en cours localhost:8080 sur mon serveur Ubuntu et installé nginx pour s'y connecter via <server-ip>:80 . Cela fonctionne, mais je ne comprends pas la partie suivante :

Pour le faire fonctionner, j'ai suivi une petit tutoriel sur la façon d'héberger une application Vapor . Une partie d'un fichier de configuration de nginx devait être configurée comme :

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

Je devrais maintenant être capable d'atteindre MyApp en utilisant <server-ip>:80 mais cela n'a pas fonctionné. Comme MyApp commence par l'invite :

Serveur démarrant le http://localhost:8080

J'ai changé le bloc serveur dans la configuration de nginx en :

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    location / {
        proxy_pass http://localhost:8080; // Changed to localhost
    }
}

Cela a fonctionné et je suis maintenant capable d'atteindre MyApp !

netstat montre les entrées suivantes :

[...]:~# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address     Foreign Address  State     PID/Program name
tcp        0      0 0.0.0.0:80        0.0.0.0:*        LISTEN    1106/nginx: master
tcp        0      0 127.0.0.53:53     0.0.0.0:*        LISTEN    601/systemd-resolve
[...] // my ssh connection
tcp6       0      0 ::1:8080          :::*             LISTEN    8145/<MyApp>
tcp6       0      0 :::80             :::*             LISTEN    1106/nginx: master
  • Il semble donc que mon application Vapor fonctionne sur tcp6. Je suis nouveau dans le développement de serveur et j'ai pensé à localhost comme un équivalent à 127.0.0.1 . Pourquoi mes changements l'ont-ils fait fonctionner ?
  • Avec mon changement vers localhost, pourrais-je rencontrer d'autres problèmes ?

2voto

Michael Hampton Points 232226

Le nom localhost est équivalent à l'adresse IPv6 ::1 en plus de l'adresse IPv4 127.0.0.1 .

Au cours des 20 dernières années environ, IPv6 a été le protocole préféré à IPv4, de sorte que lorsqu'une adresse IPv6 est disponible pour un nom, elle est essayée en premier.

Cela signifie que vous devez vous attendre à localhost les connexions à réaliser pour ::1 sur pratiquement tous les appareils modernes, à moins que quelqu'un ne se soit donné beaucoup de mal pour désactiver IPv6. Et sur certains systèmes d'exploitation tels que Windows, IPv6 ne peut pas être désactivé de toute façon, donc localhost est toujours censé se connecter à ::1 .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X