nginx, vários domínios, um servidor: acessível de alguns clientes, 404 de outros

1

Estou tentando hospedar o site de um amigo no meu Ubuntu 16.04 VPS.

Eu mesmo tenho vários sites em sub1.mydomain.com, sub2.mydomain.com etc. Esses são os aplicativos nodejs, cada um deles tem uma configuração de passagem de proxy em um arquivo individual como:

server
{
    server_name sub1.mydomain.com;

    location /
    {
        proxy_pass http://localhost:APP_PORT;
        include /etc/nginx/proxy_params;
    }
}

o arquivo proxy_params contém um monte de coisas que eu simplesmente copiei de algum tutorial:

proxy_buffers 16 32k;
proxy_buffer_size 64k;
proxy_busy_buffers_size 128k;
proxy_cache_bypass $http_pragma $http_authorization;
proxy_connect_timeout 59s;
proxy_hide_header X-Powered-By;
proxy_http_version 1.1;
proxy_ignore_headers Cache-Control Expires;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
proxy_no_cache $http_pragma $http_authorization;
proxy_pass_header Set-Cookie;
proxy_read_timeout 600;
proxy_redirect off;
proxy_send_timeout 600;
proxy_temp_file_write_size 64k;
proxy_set_header Accept-Encoding '';
proxy_set_header Cookie $http_cookie;
proxy_set_header Host $host;
proxy_set_header Proxy '';
proxy_set_header Referer $http_referer;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Original-Request $request_uri;

Isso funcionou para mim.

Agora, estou tentando apontar o domínio de meu amigo (her-domain.com) para outro aplicativo de nó no meu servidor para hospedar o site dela.

server
{
    server_name her-domain.com;

    location /
    {
        proxy_pass http://localhost:HER_APP_PORT;
        include /etc/nginx/proxy_params;
    }
}

Engraçadamente, isso não parece funcionar direito. Se eu usar o google DNS (8.8.8.8) no meu computador, posso acessar o aplicativo reverso-proxied para esse domínio muito bem e olhar para o site que serve no meu navegador. Mas se eu usar um DNS padrão, o nginx servirá uma página 404.

Como posso acessar o servidor através desse domínio e o nginx atende esse 404, presumo que seja um problema de configuração do nginx. Eu sou novo neste material e não sei como depurar isso.

    
por spinalwrap 13.05.2018 / 15:53

1 resposta

1

Isso não tem nada a ver com o DNS.

O problema era que a configuração do nginx não lidava com as solicitações do IPv6 corretamente. mudando a configuração para

server
{
    server_name her-domain.com;
    listen 80;
    listen [::]:80;

    location /
    {
        proxy_pass http://localhost:APP_PORT;
        include /etc/nginx/proxy_params;
    }
}

coisas fixas.

    
por 13.05.2018 / 22:03

Tags