nginx não atende solicitações para endereço IP externo


10

Eu tenho o nginx rodando na porta 81. Posso usar o telnet telnet 127.0.0.1 81e está tudo bem.

Mas quando tento telnetar para minha máquina no meu Mac (um endereço IP externo), recebo este erro:

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

Aqui está o meu arquivo / 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;
        }
        ...

Abri o Ubuntu Firewall (ufw) para permitir a porta 81.

Estou totalmente preso agora.

Alguém tem alguma ideia?

Respostas:


17

Você tem o nome do servidor como

server_name 109.123.x.x;

Isto está errado !!!!!

Coloque qualquer nome e não número como

server_name mywebsite.home;

e coloque mywebsite.home como o IP do servidor nginx no seu arquivo host (/ etc / hosts), ou seja, no seu mac, como no formato

109.123.X.X mywebsite.home

onde XX é substituído por números

ou

Se você deseja atender a todos os pedidos, basta colocar

server_name _;

Se isso não resolver o problema, verifique abaixo

É o seu firewall, ou seja, o iptables está bloqueando seu tráfego ou o seu nginx escuta apenas no localhost, ou seja, 127.0.0.1

Desativar firewall

sudo ufw disable

Verifique o endereço de escuta para a porta 81

sudo netstat -tulpn

Eu mudei para a porta 8080 e está funcionando agora. Pode ter algo a ver com uma porta privilegiada ou talvez minha conexão 3G bloqueie a porta 81. De qualquer forma, está funcionando agora. Muito obrigado pela sua ajuda.
— Eamorr

Se for uma instância na nuvem, como rackspace ou AWS, verifique seus grupos de segurança. Por padrão, as portas 22 e 80 são as únicas normalmente abertas.
— Radtek 28/10

o sudo ufw disablefez por mim.
— GG_Python

De acordo com o documento nginx , o uso do endereço IP tem nome_do_servidor não está errado . "Se alguém fizer uma solicitação usando um endereço IP em vez de um nome de servidor, o campo de cabeçalho de solicitação" Host "conterá o endereço IP e a solicitação poderá ser tratada usando o endereço IP como o nome do servidor":
— Gabriel Glenn,

1

Eu tenho o mesmo problema há alguns meses atrás, quando estou tentando executar o ngnix no meu sistema ubuntu e acessando os serviços de outro sistema windows. mas não consigo executar o acesso a qualquer serviço de porta como http://127.0.0.1/8000 depois de algum tempo eu supero isso desativando o firewall do meu sistema ubuntu.

comando para desativar o firewall:

    sudo ufw disable

você também pode verificar o status do seu firewall primeiro:

    sudo ufw status

0

Dicas que me ajudaram: A.) Encaminhamento de porta B.) Defina o IP público como server_name Essas etapas funcionaram para mim, especialmente a dica A.)


O nome do servidor nunca deve ser realmente um IP.
— Matt
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.