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?

Eamorr
fonte

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
kaji
fonte
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
Abhishek-Saini
fonte
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.)

A09hopper
fonte
O nome do servidor nunca deve ser realmente um IP.
Matt