Nginx liga-se apenas ao IP externo (listen hostname: port)

1

Gostaria de especificar um servidor nginx que ouve somente o IP externo de um nome de host fornecido na diretiva listen . Meu servidor tem nome de domínio foobar.example.com , o qual resolve para IP público 1.2.3.4 .

Quando eu configuro o servidor nginx assim

server {

    #listen 3330;
    listen foobar.example.com:3330;
    server_name foobar.example.com;

    location / {
        proxy_pass http://127.1.0.1:3330;
        proxy_set_header  Host               $host;
        proxy_set_header  X-Real-IP          $remote_addr;
        proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto  $scheme;
    }
}

ele ouve 127.0.0.1:3330 embora. Por que é que? Como posso fazer isso para ligar ao 1.2.3.4:3330 sem codificar o endereço IP no arquivo de configuração?

# dig +noall +answer foobar.example.com
foobar.example.com.     2648    IN  A   1.2.3.4
# dig +noall +answer -x 1.2.3.4
4.3.2.1.in-addr.arpa. 2828  IN  PTR foobar.example.com.
# dig +noall +answer -x 127.0.0.1
1.0.0.127.in-addr.arpa. 0   IN  PTR foobar.example.com.
1.0.0.127.in-addr.arpa. 0   IN  PTR foobar.

Apenas FYI: Quando eu uso apenas listen 3330 e mantenho o restante inalterado, nginx ouve 0.0.0.0:3330 e, como você suspeita, todo o inferno acontece na primeira solicitação para http://foobar.example.com:3330 . :-)

    
por woky 11.11.2018 / 22:22

1 resposta

0

O problema é que deixei o seguinte em /etc/hosts

127.0.0.1 localhost foobar.example.com.

e eu já esqueci como chegou lá. :-) Removendo foobar.example.com. alias de 127.0.0.1 feito nginx configurado com o trecho acima escutar em IP externo somente como eu esperava.

    
por 11.11.2018 / 23:15