Estamos hospedando muitos aplicativos da web para nossos clientes. Como é óbvio, eles querem usar seus próprios domínios para se referir a esses aplicativos, geralmente eles querem que qualquer usuário que digite http://www.customer1.example
ou http://customer1.example
vá até seu aplicativo da web.
A situação que enfrentamos é que precisamos ter flexibilidade para alterar os endereços IP em um futuro próximo. E não queremos depender do cliente para fazer a alteração do registro A em seus domínios. Portanto, pensamos que o uso de CNAME
registros funcionaria, mas, como descobrimos, os CNAME
registros não funcionarão para o domínio raiz.
Basicamente:
customer1.example IN CNAME customer1.mycompanydomain.example //this is invalid as the RFC
www.customer1.example IN CNAME customer1.mycompanydomain.example //this is valid and will work
Queremos ser capazes de alterar o endereço IP customer1.mycompanydomain.example
ou o A
registro e nossos clientes seguirão este registro sobre o qual temos controle.
em nosso DNS será semelhante a:
customer1.mycompanydomain.example IN A 192.0.2.1
Alguma ideia?
fonte
Respostas:
A razão pela qual essa pergunta ainda surge com frequência é porque, como você mencionou, em algum lugar alguém presumido como importante escreveu que a RFC declara que os nomes de domínio sem subdomínio na frente deles não são válidos. Se você ler o RFC com atenção, no entanto, descobrirá que não é exatamente o que ele diz. Na verdade, a RFC 1912 afirma:
Alguns hosts DNS fornecem uma maneira de obter funcionalidade semelhante a CNAME no ápice da zona (o nível de domínio raiz, para o nome de domínio sem www) usando um tipo de registro personalizado. Esses registros incluem, por exemplo:
Para cada provedor, a configuração é semelhante: aponte a entrada ALIAS ou ANAME de seu domínio apex para example.domain.com, da mesma forma que faria com um registro CNAME. Dependendo do provedor de DNS, um valor vazio ou @ Name identifica o ápice da zona.
ALIAS ou ANAME ou @ example.domain.com.
Se o seu provedor de DNS não oferecer suporte a esse tipo de registro e você não conseguir mudar para um que suporte, você precisará usar o redirecionamento de subdomínio, o que não é tão difícil, dependendo do protocolo ou software de servidor que precisa fazer isso .
Eu discordo veementemente da afirmação de que isso é feito apenas por "administradores amadores" ou outras ideias. É um simples "O que o nome e seu serviço precisam fazer?" lidar e, em seguida, adaptar sua configuração DNS para atender a esses desejos; Se seus serviços principais são web e e-mail, não vejo nenhuma razão VÁLIDA para que descartar os CNAMEs para sempre seja problemático. Afinal, quem prefere @ subdomain.domain.org em vez de @ domain.org? Quem precisa de "www" se você já está configurado com o próprio protocolo? É ilógico supor que o uso de um nome de domínio raiz seja inválido.
fonte
O CNAME de um registro raiz não é tecnicamente contra o RFC, mas tem limitações, o que significa que é uma prática não recomendada.
Normalmente, seu registro raiz terá várias entradas. Digamos, 3 para seus servidores de nome e um para um endereço IP.
Por RFC:
E de acordo com o documento 'Erros comuns operacionais e de configuração de DNS da IETF:
Referências:
fonte
NS
eSOA
registra e, portanto, não pode terCNAME
registros.Não sei como eles estão se saindo com isso, ou quais efeitos colaterais negativos podem ser, mas estou usando o Hover.com para hospedar alguns dos meus domínios e recentemente configurei o apex do meu domínio como um CNAME lá. A ferramenta de edição de DNS deles não reclamou, e meu domínio felizmente resolve por meio do CNAME atribuído.
Aqui está o que Dig me mostra para este domínio (domínio real ofuscado como mydomain.com):
fonte
Minha empresa faz o mesmo com vários clientes, onde hospedamos um site para eles, embora em nosso caso seja xyz.company.com em vez de www.company.com. Fazemos com que eles definam o registro A em xyz.company.com para apontar para um endereço IP que atribuímos a eles.
Quanto a como você poderia lidar com uma mudança no endereço IP, não acho que haja uma solução perfeita. Algumas ideias são:
Use um balanceador de carga NAT ou IP e forneça aos seus clientes um endereço IP pertencente a ele. Se o endereço IP do servidor da web precisar ser alterado, você pode fazer uma atualização no NAT ou no balanceador de carga,
Ofereça um serviço de hospedagem DNS também e faça com que seus clientes hospedem seus domínios com você para que você possa atualizar os registros A,
Faça com que seus clientes configurem seu registro A em um servidor da web principal e use um redirecionamento HTTP para as solicitações da web de cada cliente.
fonte
Sipwiz está correto, a única maneira de fazer isso corretamente é a abordagem híbrida de HTTP e DNS. Meu registrador é um revendedor da Tucows e oferece encaminhamento de domínio raiz como um serviço de valor agregado gratuito.
Se o seu domínio for blah.com, eles perguntarão para onde você deseja que o domínio seja encaminhado e você digita www.blah.com. Eles atribuem o registro A ao seu servidor apache e adicionam automaticamente blah.com como um vhost DNS. O vhost responde com um erro HTTP 302, redirecionando-os para o URL adequado. É simples de fazer o script / configuração e pode ser manipulado por baixo custo, caso contrário, seria o hardware descartado.
Execute o seguinte comando para obter um exemplo: curl -v eclecticengineers.com
fonte
Você tem que colocar um ponto final no final do domínio externo para que não ache que você se refira ao cliente1.minhaempresa.dominio.com.br.localdomain;
Então, basta mudar:
Para
fonte
customer1.com
, isso funciona ... mas é interpretado como especificando CNAMe para um subdomíniocustomer1.com.customer1.com
. Se eu adicionar um ponto ao primeiro item, o registro será interpretado corretamente, mas não funciona mais. Não vejo solução aqui.Vejo que o readytocloud.com está hospedado no Apache 2.2.
Há uma maneira muito mais simples e eficiente de redirecionar o site não www para o site www no Apache.
Adicione as seguintes regras de reescrita às configurações do Apache (dentro ou fora do host virtual. Não importa):
Ou, as seguintes regras de reescrita se você quiser um mapeamento 1 para 1 de URLs do site não www para o site www:
Observe, o módulo mod_rewrite precisa ser carregado para que isso funcione. Felizmente, o readytocloud.com está rodando em uma caixa CentOS, que por padrão carrega o mod_rewrite.
Temos um servidor cliente executando o Apache 2.2 com pouco menos de 3.000 domínios e quase 4.000 redirecionamentos, no entanto, a carga no servidor gira em torno de 0,10 a 0,20.
fonte
Graças a sipwiz e MrEvil. Desenvolvemos um script PHP que irá analisar a URL que o usuário inserir e colar
www
no topo dela. (por exemplo, se o cliente acessar kiragiannis.com , ele será redirecionado para www.kiragiannis.com ). Assim, nosso cliente aponta sua raiz (por exemplo,customer1.com
paraA
registrar onde está nosso redirecionador da web) e, em seguida,www
CNAME
para oA
registro real gerenciado por nós.Abaixo o código caso você tenha interesse em nos futuramente.
fonte
http://
para remover, nem/
($urlPagePath
estará sempre vazio). Cf httpd.apache.org/docs/2.4/expr.html . Devido à maneira como o código tenta se livrar do subdomínio, ele também não funcionará para coisas comowww.example.co.uk
ondeco.uk
deve ser considerado como um todo. Ele também não lida com HTTPS. E finalmente usando PHP basta fazer um redirecionamento de HTTP onde qualquer servidor web pode fazer na configuração, fica complicado demais. Portanto, em resumo, essa certamente não deve ser a resposta validada para essa pergunta.