CNAME na Rota 53 - Redirecionar www para não www não funcionando

1

Estou hospedando o aplicativo da web na AWS com Nginx 1.6.3 e django 1.7.6

Gostaria de redirecionar www.mydomain.com para mydomain.com através do Route 53

Em outras palavras, mostrando mydomain.com/foo na barra de endereço quando o usuário digita www.mydomain.com/foo

Configuração do Route 53

mydomain.com

  • Tipo: um registro
  • Valor: ALIAS {Elastic Load Balancer Um registro}

www.mydomain.com

  • Tipo: CNAME
  • Valor: mydomain.com

Com a configuração acima, mydomain.com está funcionando bem, mas www.mydomain.com retorna o erro 400 Solicitação incorreta . Claro, eu tentei em modo secreto (sem cache) com intervalo de tempo suficiente (mais de 24 horas). Adicionar http:// na frente retorna o mesmo erro.

    server {
        listen 80;
        server_name www.mydomain.com;
        return 301 $scheme://mydomain.com$request_uri;
    }

Se eu adicionei o código acima em nginx.conf , www.mydomain.com redirecionou para mydomain.com como eu esperava. No entanto, não tenho certeza de que é necessário editar a configuração do servidor da Web para usar o serviço CNAME. Como posso usar o serviço CNAME sem editar o servidor da Web?

    
por Chemical Programmer 06.05.2015 / 19:58

1 resposta

2

Isso soa como o comportamento esperado. Exatamente o que acontece quando o servidor HTTP recebe uma solicitação com a qual ele não sabe como lidar pode ser diferente, mas nenhum redirecionamento é esperado a menos que aconteça no nível HTTP.

Um registro CNAME está meramente afirmando que um determinado nome no DNS é um alias de um nome diferente no DNS.

O que acontece quando você tem um registro CNAME no lugar é que quando o cliente HTTP faz uma consulta A ou AAAA para o nome do alias, ele recebe o endereço IP associado ao nome real retornado.

Eles se conectarão a esse endereço, sabendo que é o endereço associado ao nome que eles pesquisaram (o alias) e farão uma solicitação totalmente normal.

Quando você tem hosts virtuais baseados em nome, o que o servidor HTTP se importa é o que o cabeçalho Host diz e o cliente colocará qualquer nome de host que estivesse na URL para a qual navegou como o valor desse cabeçalho (neste exemplo, o alias).

Se você quiser redirecionar um cliente HTTP, precisará de um redirecionamento HTTP, como em seu próprio exemplo.

    
por 06.05.2015 / 20:39