nginx no atiende solicitudes a direcciones IP externas

10

Tengo nginx ejecutándose en el puerto 81. Puedo usar telnet telnet 127.0.0.1 81y todo está bien.

Pero cuando trato de hacer telnet a mi máquina desde mi Mac (una dirección IP externa), aparece este error:

telnet: connect to address 109.123.x.x: Connection refused
telnet: Unable to connect to remote host

Aquí está mi archivo / etc / nginx / sites-available / default:

server {
        listen   81; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name 109.123.x.x;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.html;
        }
        ...

Abrí Ubuntu Firewall (ufw) para permitir el puerto 81.

Estoy totalmente atascado ahora.

¿Alguien tiene alguna idea?

Eamorr
fuente

Respuestas:

17

Tienes el nombre del servidor como

server_name 109.123.x.x;

Esto está mal !!!!!

Pon cualquier nombre, no un número como

server_name mywebsite.home;

y coloque mywebsite.home como la IP del servidor nginx en su archivo de host (/ etc / hosts), es decir, en su mac como en formato

109.123.X.X mywebsite.home

donde XX se reemplaza con números

o

Si desea atender toda la solicitud, simplemente ponga

server_name _;

Si eso no resuelve las cosas, marque a continuación

Es su cortafuegos, es decir, iptables bloquea su tráfico o tiene su nginx escuchando solo en localhost, es decir 127.0.0.1

Deshabilitar firewall

sudo ufw disable

Verifique la dirección de escucha para el puerto 81

sudo netstat -tulpn
kaji
fuente
Cambié al puerto 8080 y está funcionando ahora. Podría tener algo que ver con un puerto privilegiado o tal vez mi conexión 3G bloquea el puerto 81. De todos modos, está funcionando ahora. Muchas gracias por su ayuda.
Eamorr
Si se trata de una instancia en la nube, como rackspace o AWS, verifique sus Grupos de seguridad. Por defecto, los puertos 22 y 80 son los únicos que generalmente están abiertos.
radtek
Lo sudo ufw disablehicieron por mí.
GG_Python
Según el documento nginx , el uso de la dirección IP tiene nombre_servidor no está mal . "Si alguien realiza una solicitud utilizando una dirección IP en lugar de un nombre de servidor, el campo de encabezado de solicitud" Host "contendrá la dirección IP y la solicitud se puede manejar utilizando la dirección IP como nombre del servidor":
Gabriel Glenn
1

Tengo el mismo problema hace unos meses cuando intento ejecutar ngnix en mi sistema ubuntu y acceder a los servicios desde otro sistema de Windows. pero no puedo ejecutar el acceso a ningún servicio de puerto como http://127.0.0.1/8000 después de que en algún momento supere esto desactivando el firewall de mi sistema ubuntu.

comando para apagar el firewall:

    sudo ufw disable

También puede verificar primero el estado de su firewall:

    sudo ufw status
Abhishek-Saini
fuente
0

Consejos que me ayudaron: A.) Puerto adelante B.) Establecer la IP pública como nombre_servidor Estos pasos me funcionaron especialmente el consejo A.)

A09hopper
fuente
El nombre del servidor nunca debería ser realmente una IP.
Matt