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?

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

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

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.)


El nombre del servidor nunca debería ser realmente una IP.
— Matt
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.