2 votos

Entendiendo la configuración de red para Vapor + nginx

Tengo mis Vapor de Aplicación MyApp ejecución en localhost:8080 en mi Ubuntu server y instalado nginx para conectarse a ella a través de la <server-ip>:80. Funciona, pero no entiendo la siguiente parte de ella:

Para que funcione, he seguido un pequeño tutorial sobre cómo organizar un Vapor de la aplicación. Una parte de un archivo de configuración de nginx tuvo que ser configurado como:

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

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

Yo ahora que he sido capaz de llegar a MyApp uso de <server-ip>:80, pero esto no funcionó. Como MyApp comienza con el símbolo del sistema:

Servidor de partida en http://localhost:8080

He cambiado el servidor de bloque en el nginx config:

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

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

Esto funcionó y ahora soy capaz de llegar a MyApp!

netstat muestra las siguientes entradas:

[...]:~# 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
  • Así que parece que mi Vapor de la aplicación se ejecuta en tcp6. Soy nuevo en el servidor de desarrollo y el pensamiento de localhost como equivalente a 127.0.0.1. ¿Por qué mi los cambios que funcione?
  • Con mi cambio a localhost, se pueden ejecutar en cualquier otro tipo de problemas?

2voto

Michael Hampton Puntos 88271

El nombre localhost es equivalente a la dirección IPv6 ::1 además de la dirección IPv4 127.0.0.1.

Para la última ... casi 20 años más o menos, IPv6 ha sido el preferido del protocolo IPv4, por lo que cuando una dirección IPv6 está disponible para un nombre que será tratado en primer lugar.

Esto significa que usted debe esperar localhost de conexiones a ::1 en prácticamente todos los modernos dispositivos, a menos que alguien se ha esforzado mucho para deshabilitar IPv6. Y en algunos sistemas operativos como Windows, IPv6 no se puede deshabilitar de todos modos, por lo localhost siempre es esperado para conectarse a ::1.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: