Nginx não encaminhando solicitações de domínio personalizadas para a porta correta

1

Eu tenho um site que permite aos usuários criar portfólios para seus sites, eles simplesmente mudam seus registros A em seu domínio e colocam o endereço IP do servidor em seus registros e mapeiam para o site deles (user1.example.com). Meu problema é que eu comprei um domínio para testar isso (example.com) e ele os encaminha para a página inicial do meu site real, onde você pode usar esse serviço.

A única maneira de um usuário acessar seu site é: http://example.com:3000 - 3000 sendo a porta na qual meu aplicativo Node.js é executado. Minha configuração do Nginx está abaixo, alguém pode me dar um osso?

server {
    listen 80;
    listen 443 ssl;
    listen [::]:443 ssl;

    ssl_certificate /etc/nginx/ssl/example.com/cert_chain.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;

    server_name example.com *.example.com "";
    access_log /var/log/nginx/nginx.vhost.access.log;
    error_log /var/log/nginx/nginx.vhost.error.log;

    root /opt/33i/;

    # Perfect forward secrecy
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/nginx/ssl/example.com/dhparams.pem;
    ssl_ciphers ;

    # HSTS
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X_FORWARDED_PROTO https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Url-Scheme $scheme;
        proxy_redirect off;
        proxy_max_temp_file_size 0;
    }
}

Alguma ideia? Isso está me enlouquecendo!

    
por Paul Sanders 04.09.2017 / 02:30

1 resposta

1

Acho que o problema pode estar na linha server_name .

Como atualmente implementado, ele corresponde aos seguintes tipos de solicitações:

  • Host: header sendo example.com
  • Host: cabeçalho terminando com .example.com
  • Host: cabeçalho ausente

Isso significa que essa configuração não corresponde a domínios arbitrários, que parecem com o que você quer que aconteça.

Agora, provavelmente você tem outro bloco server em sua configuração com:

escute 443 ssl default_server;

O host virtual que contém essa diretiva é o host virtual genérico para solicitações que não são correspondidas de outra forma.

Portanto, para corrigir o seu problema, você precisa remover a diretiva default_server do bloco server de onde está agora e adicionar default_server às diretivas ' listen ' dos blocos.

    
por 04.09.2017 / 14:53