Estamos alojando muchas aplicaciones web para nuestros clientes. Como es obvio, quieren usar sus propios dominios para referirse a esas aplicaciones, por lo general quieren que cualquier usuario escriba http://www.customer1.example
o http://customer1.example
vaya a su aplicación web.
La situación a la que nos enfrentamos es que debemos tener la flexibilidad para cambiar las direcciones IP en un futuro próximo. Y no queremos depender de que el cliente haga el cambio de registro A en sus dominios. Así que pensamos que el uso de CNAME
registros funcionaría, pero como descubrimos, los CNAME
registros no funcionarán para el dominio raíz.
Básicamente:
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 poder cambiar la dirección IP de customer1.mycompanydomain.example
o el A
registro y nuestros clientes seguirán este registro sobre el que tenemos control.
en nuestro DNS se verá así:
customer1.mycompanydomain.example IN A 192.0.2.1
¿Algunas ideas?
fuente
Respuestas:
La razón por la que esta pregunta todavía surge a menudo es porque, como mencionaste, en algún lugar de alguna manera alguien que se presume importante escribió que la RFC establece que los nombres de dominio sin subdominio frente a ellos no son válidos. Sin embargo, si lee el RFC con atención, encontrará que esto no es exactamente lo que dice. De hecho, RFC 1912 establece:
Algunos hosts DNS proporcionan una forma de obtener una funcionalidad similar a CNAME en el vértice de la zona (el nivel de dominio raíz, para el nombre de dominio simple) utilizando un tipo de registro personalizado. Dichos registros incluyen, por ejemplo:
Para cada proveedor, la configuración es similar: apunte la entrada ALIAS o ANAME para su dominio apex a example.domain.com, tal como lo haría con un registro CNAME. Según el proveedor de DNS, un valor vacío o @ Name identifica el vértice de la zona.
ALIAS o ANAME o @ example.domain.com.
Si su proveedor de DNS no admite un tipo de registro de este tipo y no puede cambiar a uno que sí lo haga, deberá utilizar la redirección de subdominios, que no es tan difícil, según el protocolo o el software del servidor que necesite hacerlo. .
Estoy totalmente en desacuerdo con la afirmación de que solo lo hacen "administradores aficionados" o ideas similares. Es un simple "¿Qué deben hacer el nombre y su servicio?" tratar, y luego adaptar su configuración de DNS para satisfacer esos deseos; Si sus principales servicios son la web y el correo electrónico, no veo ninguna razón VÁLIDA por la que eliminar los CNAME definitivamente sería problemático. Después de todo, ¿quién preferiría @ subdomain.domain.org sobre @ domain.org? ¿Quién necesita "www" si ya está configurado con el protocolo en sí? Es ilógico asumir que el uso de un nombre de dominio raíz no sería válido.
fuente
El uso de CNAME en un registro raíz técnicamente no está en contra de RFC, pero tiene limitaciones, lo que significa que es una práctica que no se recomienda.
Normalmente, su registro raíz tendrá varias entradas. Digamos, 3 para sus servidores de nombres y luego uno para una dirección IP.
Por RFC:
Y según el documento IETF 'Errores comunes operativos y de configuración de DNS':
Referencias:
fuente
NS
ySOA
registros y por lo tanto no puede tenerCNAME
registros.No sé cómo se están saliendo con la suya, o qué efectos secundarios negativos pueden tener, pero estoy usando Hover.com para alojar algunos de mis dominios, y recientemente configuré el ápice de mi dominio como CNAME allí. Su herramienta de edición de DNS no se quejó en absoluto, y mi dominio se resuelve felizmente a través del CNAME asignado.
Esto es lo que me muestra Dig para este dominio (dominio real ofuscado como midominio.com):
fuente
Mi empresa hace lo mismo con una serie de clientes en los que les alojamos un sitio web, aunque en nuestro caso es xyz.company.com en lugar de www.company.com. Conseguimos que establezcan el registro A en xyz.company.com para apuntar a una dirección IP que les asignamos.
En cuanto a cómo podría hacer frente a un cambio en la dirección IP, no creo que haya una solución perfecta. Algunas ideas son:
Utilice un equilibrador de carga NAT o IP y proporcione a sus clientes una dirección IP que le pertenezca. Si la dirección IP del servidor web necesita cambiar, puede realizar una actualización en el NAT o en el balanceador de carga,
Ofrezca también un servicio de alojamiento de DNS y haga que sus clientes alojen su dominio con usted para que esté en condiciones de actualizar los registros A,
Consiga que sus clientes establezcan su registro A en un servidor web principal y utilicen un redireccionamiento HTTP para las solicitudes web de cada cliente.
fuente
Sipwiz tiene razón, la única forma de hacer esto correctamente es el enfoque híbrido HTTP y DNS. Mi registrador es un revendedor de Tucows y ofrecen reenvío de dominio raíz como un servicio de valor agregado gratuito.
Si su dominio es blah.com, le preguntarán a dónde desea que se reenvíe el dominio y escriba www.blah.com. Asignan el registro A a su servidor Apache y agregan automáticamente blah.com como un vhost de DNS. El vhost responde con un error HTTP 302 que los redirige a la URL adecuada. Es simple de programar / configurar y puede ser manejado por un hardware de gama baja que, de lo contrario, sería desechado.
Ejecute el siguiente comando para ver un ejemplo: curl -v eclecticengineers.com
fuente
Debe poner un punto al final del dominio externo para que no crea que se refiere a cliente1.mycompanydomain.com.localdomain;
Así que solo cambia:
A
fuente
customer1.com
, esto funciona ... pero se interpreta como especificar CNAMe para un subdominiocustomer1.com.customer1.com
. Si agrego un punto al primer elemento, el registro se interpretará correctamente, pero ya no funciona. No veo ninguna solución aquí.Veo que readytocloud.com está alojado en Apache 2.2.
Existe una forma mucho más simple y eficiente de redirigir el sitio que no es www al sitio www en Apache.
Agregue las siguientes reglas de reescritura a las configuraciones de Apache (ya sea dentro del host virtual o afuera. No importa):
O las siguientes reglas de reescritura si desea una asignación 1 a 1 de las URL del sitio que no es www al sitio www:
Tenga en cuenta que es necesario cargar el módulo mod_rewrite para que esto funcione. Afortunadamente, readytocloud.com se ejecuta en una caja CentOS, que de forma predeterminada carga mod_rewrite.
Tenemos un servidor cliente que ejecuta Apache 2.2 con poco menos de 3.000 dominios y casi 4.000 redireccionamientos, sin embargo, la carga en el servidor ronda entre 0,10 y 0,20.
fuente
Gracias tanto a sipwiz como a MrEvil. Desarrollamos un script PHP que analizará la URL que ingresa el usuario y la pegará
www
en la parte superior. (por ejemplo, si el cliente ingresa a kiragiannis.com , lo redireccionará a www.kiragiannis.com ). Entonces, nuestro cliente apunta su raíz (por ejemplo,customer1.com
paraA
registrar dónde está nuestro redirector web) y luegowww
CNAME
alA
registro real administrado por nosotros.Debajo del código en caso de que esté interesado para nosotros en el futuro.
fuente
http://
para eliminar, ni/
($urlPagePath
siempre estará vacío). Cfr . Httpd.apache.org/docs/2.4/expr.html . Debido a la forma en que el código intenta deshacerse del subdominio, tampoco funcionará para cosas comowww.example.co.uk
dóndeco.uk
debe considerarse como un todo. Tampoco maneja HTTPS. Y finalmente usar PHP simplemente hacer una redirección HTTP donde cualquier servidor web puede hacerlo en la configuración, es demasiado complicado. Entonces, en resumen, esta ciertamente no debería ser la respuesta validada para esta pregunta.