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.