Dominio personalizado para páginas de proyecto GitHub


436

Tengo una gh-pagessucursal en uno de mis repositorios http://github.com . Las páginas del proyecto GitHub funcionan bien si voy a http://myuser.github.com/myrepo

Quiero configurar un dominio personalizado (myexample.com) que sirva para las páginas de este proyecto. Quiero ambos myexample.com y www.myexample.comservir estas páginas del proyecto.

La ayuda de las páginas de GitHub dice hacer un registro A y un registro CNAME en su DNS. El registro A tiene sentido, pero no sé qué registro CNAME hacer en mi DNS.

Los gh-pagesdocumentos dicen que haga un CNAMEregistro para 'charlie.github.com', que es un repositorio de páginas de usuario. No tengo un repositorio de páginas de usuario: solo tengo un repositorio de proyectos y una gh-pagesrama que quiero usar para myexample.comy www.myexample.com.

¿Necesito hacer un repositorio de página de usuario para poder usar mi página de proyecto para www.myexample.com y myexample.com?

Simplemente lo probaría, pero quiero asegurarme de que esto funcione ya que tengo www.myexample.com en vivo y no quiero cometer un error.

Envié un correo electrónico al soporte de GitHub y su respuesta fue

Por lo que sé, no puede hacer que ambos apunten a las mismas páginas gh.

Me resulta difícil creer que solo admitan registros A para las páginas del proyecto.

¿Alguien ha hecho esto con éxito antes?


10
He configurado lacewing-project.org con solo un registro A que apunta a 207.97.227.245 (sin registros CNAME), y funciona bien. También puse un archivo llamado CNAME en la raíz de la rama gh-pages que contiene el nombre de dominio.
James McLaughlin

En mi caso, simplemente colocando el archivo CNAME en la rama gh-pages hizo el truco, ¡gracias!
jarandaf

Respuestas:


522

23/01/19 ACTUALIZACIÓN:

Las cosas han cambiado bastante (para mejor) desde mi última respuesta. Esta respuesta actualizada le mostrará cómo configurar:

  1. Ápice de la raíz (example.com)
  2. Subdominio (www.example.com)
  3. HTTPS (opcional pero muy recomendable)

Al final, todas las solicitudes example.comserán redirigidas a https://www.example.com (o http: // si elige NO usar HTTPS). Siempre uso wwwcomo mi aterrizaje final. Por qué ( 1 , 2 ), es para otra discusión.

Esta respuesta es larga pero es no complicado. Fui prolijo por claridad, ya que los documentos de GitHub sobre este tema no son claros ni lineales.

Paso 1: habilite las páginas de GitHub en la configuración de GitHub

  1. Desde su repositorio, haga clic en la pestaña
  2. Desplácese hacia abajo a la GitHub Pagessección. Tienes dos opciones:
  3. Elegir master branchtratará /README.mdcomo tu web index.html. Elegir master branch /docs foldertratará /docs/README.mdcomo tu web index.html.
  4. Elige un tema.
  5. Espere un minuto mientras GitHub publica su sitio. Verifique que funciona haciendo clic en el enlace al lado deYour site is ready to be published at

Paso 2: especifique el dominio personalizado en la configuración de GitHub

Ingrese su nombre de dominio personalizado aquí y presione save:

Este es un paso sutil pero importante.

  • Si el dominio personalizado que agregó a su sitio de páginas de GitHub es example.com, www.example.comse redirigirá aexample.com
  • Si el dominio personalizado que agregó a su sitio de páginas de GitHub es www.example.com, example.comse redirigirá a www.example.com.

Como se mencionó anteriormente, recomiendo siempre aterrizar en, wwwasí que entré www.example.comcomo se muestra arriba.

Paso 3: crear entradas DNS

En la consola web de su proveedor de DNS, cree cuatro Aregistros y uno CNAME.

  1. ARegistros para @(también conocido como apex de raíz):

Algunos proveedores de DNS le pedirán que especifique @, otros (como AWS Route 53) dejará el subdominio en blanco para indicar @. En cualquier caso, estos son los Aregistros para crear:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
  1. Cree un CNAMEregistro para apuntar www.example.com YOUR-GITHUB-USERNAME.github.io.

Esta es la parte más confusa.

Tenga en cuenta el YOUR-GITHUB-USERNAME NO el nombre del repositorio de GitHub El valor de YOUR-GITHUB-USERNAMEestá determinado por este gráfico .

Para un sitio de páginas de usuario (muy probablemente lo que eres), la CNAMEentrada seráusername.github.io , por ejemplo:

Para un sitio de páginas de Organización , la CNAMEentrada seráorgname.github.io , por ejemplo:

Paso 5: confirme las entradas DNS

  1. Confirme sus Aregistros ejecutando dig +noall +answer example.com. Debería devolver las cuatro 185.x.x.xdirecciones IP que ingresó.

  2. Confirma tu CNAMEregistro al ejecutar dig www.example.com +nostats +nocomments +nocmd. Debería devolver unCNAME YOUR-GITHUB-USERNAME.github.io

Puede tomar una hora más o menos para que estas entradas DNS se resuelvan / propaguen. Una vez que lo hagan, abra su navegador http://example.comy debería redirigir ahttp://www.example.com

Paso 6: Configuración SSL (HTTPS). Opcional, pero muy recomendable.

Una vez que tenga el dominio personalizado funcionando, regrese a la configuración del repositorio. Si ya tiene la página de configuración abierta, actualice la página.

Si hay un mensaje debajo de la Enforce HTTPScasilla de verificación, que indica que aún se está procesando, deberá esperar. También es posible que deba presionar el savebotón en la Custom domainsección para iniciar elEnforce HTTPS procesamiento.

Una vez que se completa el procesamiento, debería verse así:

ingrese la descripción de la imagen aquí

Simplemente haga clic en la Enforce HTTPScasilla de verificación y apunte su navegador a https://example.com. Debe redirigir y abrirhttps://www.example.com

¡ESO ES!

GitHub mantendrá automáticamente actualizado su certificado HTTPS Y debería manejar el vértice para wwwredirigir a través de HTTPS.

¡¡Espero que esto ayude!!

...

Respuesta anterior (anterior al 23/01/19)

Entonces lo descubrí. James McLaughlin me dio el empujón que necesitaba.

Para configurar un dominio personalizado para un repositorio de páginas de proyecto de gh-pages que maneje www.yourdomain.com y yourdomain.com (se supone que ya tiene una rama de gh-pages en su repositorio):

  1. Desde su repositorio de proyectos, gh-pages branch. Crea un archivo CNAME con los contenidos yourdomain.com. Comprometerse luego empujar.
  2. En su administrador de DNS, configure dos cnameregistros. Uno para el ápice raíz (@) y otro para www. Ambos apuntan a YOURusername.github.io. Si su proveedor de DNS NO admite ALIASregistros en el vértice raíz (@), simplemente cree Aregistros que apunten 192.30.252.153y192.30.252.154
  3. Espere hasta que sus servidores de nombres se actualicen:

    dig yourdomain.com +nostats +nocomments +nocmd


14
A partir del 19 de abril de 2012, la documentación de GitHub se utiliza 204.232.175.78como dirección IP.
Aseem Kishore

31
Revisado el 6 de febrero de 2014 y los documentos de github dicen: Crear registros DNS A que apunten a las siguientes direcciones IP: 192.30.252.153, 192.30.252.154.
Danny

2
"Si está utilizando un registro A que apunta a 207.97.227.245 o 204.232.175.78, deberá actualizar su configuración de DNS, ya que ya no servimos páginas directamente desde esos servidores". help.github.com/articles/my-custom-domain-isn-t-working - 3/8/14
eddywashere

11
No creo que sea posible configurar un registro CNAME desde el dominio naked @. Es por eso que necesita los registros A, para manejar la redirección del dominio desnudo al subdominio www. Es un problema con cualquier cloudhost. No hay garantía de una IP fija.
superluminario

2
@rynop GoDaddy no permite @ y www a yourusername.github.io, solo un registro CNAME por subdominio :(
Tejas Manohar

241

Visión general

La documentación es un poco confusa cuando se trata de páginas de proyectos , a diferencia de las páginas de usuarios. . Parece que debería hacer más, pero en realidad el proceso es muy fácil.

Implica:

  1. Configuración de 2 registros A estáticos para el dominio desnudo (no www).
  2. Crear un registro CNAME para www que apunte a una URL de GitHub. Esto manejará la redirección de www por usted.
  3. Crear un archivo llamado CNAME (en mayúscula) en la raíz de su proyecto en la rama gh-pages. Esto le dirá a Github a qué URL responder.
  4. Espera a que todo se propague.

Lo que obtendrás

Su contenido será servido desde una URL de la forma http://nicholasjohnson.com .

Visitar http://www.nicholasjohnson.com devolverá una redirección 301 al dominio simple.

La ruta será respetada por la redirección, por lo que el tráfico a http://www.nicholasjohnson.com/angular se redirigirá a http://nicholasjohnson.com/angular .

Puede tener una página de proyecto por repositorio, por lo que si sus repositorios están abiertos, puede tener tantos como desee.

Aquí está el proceso:

1. Crear registros A

Para los registros A, señale @ a las siguientes direcciones IP:

@: 185.199.108.153
@: 185.199.109.153
@: 185.199.110.153
@: 185.199.111.153

Estas son las direcciones IP estáticas de Github desde las cuales se servirá su contenido.

2. Crear un registro CNAME

Para el registro CNAME, apunte www a yourusername.github.io. Tenga en cuenta el punto final final. Tenga en cuenta también que este es el nombre de usuario, no el nombre del proyecto . No necesita especificar el nombre del proyecto todavía. Github usará el archivo CNAME para determinar desde qué proyecto servir el contenido.

p.ej

www: forwardadvance.github.io.

El propósito de CNAME es redirigir todo el tráfico del subdominio www a una página de GitHub que redirigirá 301 al dominio simple.

Aquí hay una captura de pantalla de la configuración que uso para mi propio sitio http://nicholasjohnson.com :

Registros A y CNAME necesarios para las páginas estáticas de Github

3. Crear un archivo CNAME

Agregue un archivo llamado CNAME a la raíz de su proyecto en la rama gh-pages. Esto debe contener el dominio que desea servir. Asegúrate de comprometerte y empujar.

p.ej

nicholasjohnson.com

Este archivo le dice a GitHub que use este repositorio para manejar el tráfico a este dominio.

4. espera

Ahora espere 5 minutos, la página de su proyecto ahora debería estar activa.


1
No, el dominio apex tiene una IP estática. El subdominio www tiene el CNAME.
superluminario

44
@superluminary, repetí tu proceso y tengo dos problemas, 1) Estoy usando freeDNSraid.org para compartir DNS, lo que no permite agregar trailing. en username.github.io .. 2) cuando agregué github.io url sin seguimiento., mydomain.com funciona, pero no puedo acceder con www.mydomain.com ??
bistaumanga

44
La parte que no pude entender a través de los documentos de GitHub fue qué URL usar para el proyecto. Gracias por esta respuesta: "este es el nombre de usuario, no el nombre del proyecto". así que useyourUserName.github.io.
pkamb

1
He actualizado esta solución y realmente recomiendo hacerlo. Puede hacer que funcione de otras maneras, por ejemplo, usando un CNAME para el host @, pero romperá el correo electrónico, etc. Esta es la mejor solución que he encontrado. Gracias.
Steven L.

1
¡Gracias! Estaba atascado en el valor correcto para el registro CNAME en DNS: solo organization.github.io, sin importar qué proyecto bajo esa organización intente servir. (es decir, no organization.github.io/repo)
Libby

21

Si se pregunta cómo hacer que su dominio aparezca en www.mydomain.comlugar de redirigir la wwwsolicitud mydomain.com, intente esto:

Archivo CNAME en gh-pages rama tendrá una línea:

www.mydomain.com (en vez de mydomain.com )

No importa cuál sea su preferencia en la redirección (en otras palabras, no importa lo que esté en su archivo CNAME en la rama gs-pages), con su proveedor de DNS , debe configurarlo así:

A      @    192.30.252.154
A      @    192.30.252.153
CNAME  www  username.github.io

@zwacky ¿por qué no puedo apuntar el CNAME a @? ¿Por qué "www.midominio.com" y "midominio.com" se resuelven a IPs potencialmente diferentes?
aaa90210

19

Respuesta corta

Estas explicaciones detalladas son geniales, pero la confusión del OP (y mi) podría resolverse con una frase: "DNS directo a su nombre de usuario u organización de GitHub , ignorando el proyecto específico y agregue los archivos CNAME apropiados en los repositorios de su proyecto: GitHub enviará el DNS correcto para el proyecto correcto basado en archivos en el repositorio " .


1
No tengo idea de lo que significa "enviar DNS".
ceving

Redirija las consultas DNS, de modo que las solicitudes HTTP con nombres de dominio particulares obtengan los documentos correctos como respuestas.
Jim Pivarski

13

A partir del 29 de agosto de 2013, la documentación de Github afirma que:

Advertencia: las subrutas de páginas del proyecto como http://username.github.io/projectname no se redirigirán al dominio personalizado de un proyecto.


3
Estoy confundido por qué agregaron este comportamiento. Quiero que mi .com apunte a páginas de github, no al revés.
Jordan Scales

99
Estaba realmente confundido por esto también. Como ahora lo entiendo, aún puede apuntar yoursite.com a páginas github, pero yourusername.github.io/yoursite no redirigirá a yoursite.com. Eso está bien porque yoursite.com seguirá funcionando, solo asegúrese de actualizar sus registros de DNS y espere a que eso se resuelva. help.github.com/articles/…
eddywashere

Esto debería tener ramificaciones SEO (Search Engine Optimization) para el sitio web. Se dice que Google degrada la clasificación de resultados del contenido al que se puede acceder desde múltiples dominios, lo cual es una de las varias razones para aplicar redirecciones 301 ("permanentes") de username.github.io/projectnamea www.projectname.com.
BorromeanNo el

3

¡Las cosas son mucho más fáciles hoy en día!

  1. Actualice su registro de dominio de Apex (@) para apuntar

192.30.252.154

192.30.252.153

  1. Edite su campo de dominio Custome en su configuración de repositorio de github.

enter image description here

  1. www y otros subdominios se pueden actualizar como CNAME al dominio de apex.

2

Acabo de descubrir, después de un poco de frustración, que si está usando PairNIC , todo lo que tiene que hacer es habilitar la configuración de "Reenvío web" en "DNS personalizado" y proporcionar la dirección username.github.io/project y lo hará configura automáticamente los registros de ápice y subdominio para usted. Parece hacer exactamente lo que se sugiere en la respuesta aceptada. Sin embargo, no le permitirá hacer exactamente lo mismo agregando registros manualmente. Muy extraño. De todos modos, me tomó un tiempo darme cuenta, así que pensé en compartir para salvar a los demás del problema.


0

Me gustaría compartir mis pasos, que son un poco diferentes a los que ofrece rynop y superluminary .

  • para A Record es exactamente lo mismo pero
  • en lugar de crear CNAMEpara www, preferiría redirigirlo a mi dominio en blanco ( non-www)

Esta configuración se refiere a la guía del dominio preferido . La configuración de dominio de wwwto non wwwo viceversa puede ser diferente en cada uno de los proveedores de dominio. Como mi dominio está bajo GoDaddy, así que bajo la Configuración de dominio lo configuré usando el Reenvío de subdominio (301).

Como resultado de apuntar el dominio al repositorio de Github, dará todas las URL para ambos masterygh-pages ramas similares a las que enumeré a continuación van al dominio preferido:

Maestro

Al crear un CNAMEarchivo en la masterrama (verifíquelo en mi repositorio de usuario ).

http://hyipworld.github.io/
http://www.hyip.world/
http://hyip.world/

gh-pages

Al crear el mismo CNAMEarchivo en la gh-pagesrama (verifíquelo en el repositorio de mi proyecto ).

http://hyipworld.github.io/maps/
http://www.hyip.world/maps/
http://hyip.world/maps/

Además del CNAMEarchivo anterior, es posible que deba omitir por completo el procesamiento de Jekyll en las páginas de GitHub creando un archivo nombrado .nojekyllen la raíz de su repositorio de páginas.


3
Recomendaría no usar GoDaddy, sino solo una opinión personal
MMachinegun
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.