Domínio personalizado para páginas de projeto do GitHub

436

Eu tenho uma gh-pagesramificação em um dos meus http://github.com repositórios. As páginas do projeto GitHub funcionam bem se eu for para http://myuser.github.com/myrepo

Desejo configurar um domínio personalizado (myexample.com) que servirá nas páginas deste projeto. Eu quero os dois myexample.com e www.myexample.compara servir essas páginas do projeto.

As páginas do GitHub ajudam a fazer um registro A e um registro CNAME no seu DNS. O registro A faz sentido, mas não sei qual registro CNAME deve ser feito no meu DNS.

Os gh-pagesdocumentos dizem para fazer um CNAMEregistro para 'charlie.github.com', que é um repositório de páginas do usuário. Não tenho um repositório de páginas de usuário - só tenho um repositório de projeto e um gh-pagesramo que desejo usar para myexample.come www.myexample.com.

Preciso criar um repositório de páginas de usuário para poder usar minha página de projeto para www.myexample.com e myexample.com?

Eu tentaria, mas quero garantir que isso funcione, pois já tenho www.myexample.com ativo e não quero cometer um erro.

Enviei um email para o suporte do GitHub e a resposta deles foi

Você não pode apontar para as mesmas páginas gh, tanto quanto eu sei.

Acho difícil acreditar que eles suportariam apenas registros A para páginas de projetos.

Alguém já fez isso com sucesso antes?

rynop
fonte
10
Configurei o lacewing-project.org com apenas um registro A apontando para 207.97.227.245 (sem registros CNAME) e funciona bem. Também coloquei um arquivo chamado CNAME na raiz do ramo gh-pages que contém o nome de domínio.
James McLaughlin
No meu caso, basta colocar o arquivo CNAME no ramo gh-pages, obrigada!
jarandaf

Respostas:

522

23/01/19 ATUALIZAÇÃO:

As coisas mudaram um pouco (para melhor) desde a minha última resposta. Esta resposta atualizada mostrará como configurar:

  1. Vértice raiz (exemplo.com)
  2. Subdomínio (www.example.com)
  3. HTTPS (opcional, mas fortemente incentivado)

No final, todas as solicitações example.comserão redirecionadas para https://www.example.com (ou http: // se você optar por NÃO usar HTTPS). Eu sempre uso wwwcomo meu pouso final. Por que ( 1 , 2 ), é para outra discussão.

Essa resposta é longa, mas é não complicado. Fui detalhado por questões de clareza, pois os documentos do GitHub sobre esse tópico não são claros ou lineares.

Etapa 1: ativar as páginas do GitHub nas configurações do GitHub

  1. No seu repositório, clique no guia
  2. Role para baixo até o GitHub Pages seção. Você tem duas opções:
  3. A escolha master branchserá tratada /README.mdcomo sua web index.html. A escolha master branch /docs foldertratará/docs/README.md como sua web index.html.
  4. Escolha um tema.
  5. Espere um minuto enquanto o GitHub publica seu site. Verifique se funciona clicando no link ao lado deYour site is ready to be published at

Etapa 2: especificar o domínio personalizado nas configurações do GitHub

Digite seu nome de domínio personalizado aqui e pressione save:

Este é um passo sutil, mas importante.

  • Se o domínio personalizado que você adicionou ao seu site GitHub Pages for example.com, ele www.example.comserá redirecionado paraexample.com
  • Se o domínio personalizado que você adicionou ao seu site GitHub Pages for www.example.com, ele example.comserá redirecionado para www.example.com.

Como mencionado anteriormente, eu recomendo sempre aterrar em, wwwentão entrei www.example.comcomo na foto acima.

Etapa 3: criar entradas DNS

No console da web do seu provedor de DNS, crie quatro Aregistros e um CNAME.

  1. ARegistros para @(também conhecido como ápice raiz):

Alguns provedores de DNS solicitarão que você especifique @; outros (como AWS Route 53), você deixará o subdomínio em branco para indicar @. Nos dois casos, estes são os Aregistros a serem criados:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
  1. Crie um CNAMEregistro para apontar www.example.com para YOUR-GITHUB-USERNAME.github.io.

Esta é a parte mais confusa.

Observe o nome do repositório YOUR-GITHUB-USERNAME NÃO do GitHub! O valor de YOUR-GITHUB-USERNAMEé determinado por este gráfico .

Para um site de páginas de usuário (provavelmente o que você é), a CNAMEentrada será username.github.io, por exemplo:

Para um site de páginas da organização , a CNAMEentrada seráorgname.github.io , por exemplo:

Etapa 5: confirmar entradas DNS

  1. Confirme seus Aregistros executando dig +noall +answer example.com. Ele deve retornar os quatro 185.x.x.xendereços IP digitados.

  2. Confirma seu CNAMEregistro executando dig www.example.com +nostats +nocomments +nocmd. Deve retornar umCNAME YOUR-GITHUB-USERNAME.github.io

Pode levar uma hora ou mais para que essas entradas DNS sejam resolvidas / propagadas. Quando o fizerem, abra o navegador http://example.come ele deverá redirecionar parahttp://www.example.com

Etapa 6: configuração do SSL (HTTPS). Opcional, mas altamente recomendado

Depois de ter o domínio personalizado funcionando, volte para as configurações de repo. Se você já tem a página de configurações aberta, atualize a página com força.

Se houver uma mensagem na Enforce HTTPScaixa de seleção, informando que ainda está em processamento, será necessário aguardar. Você também pode precisar pressionar o savebotão na Custom domainseção para iniciar oEnforce HTTPS processamento.

Depois que o processamento estiver concluído, ele deve ficar assim:

insira a descrição da imagem aqui

Basta clicar na Enforce HTTPScaixa de seleção e apontar seu navegador para https://example.com. Deve redirecionar e abrirhttps://www.example.com

É ISSO AÍ!

O GitHub manterá automaticamente seu certificado HTTPS atualizado E deve lidar com o ápice para wwwredirecionar por HTTPS.

Espero que isto ajude!!

...

Resposta antiga (anterior a 23/01/19)

Então eu descobri. James McLaughlin me deu a cutucada que eu precisava.

Para configurar um domínio personalizado para um repositório de páginas do projeto gh-pages que lida com www.yourdomain.com e yourdomain.com (pressupõe que você já tenha uma ramificação gh-pages em seu repositório):

  1. No repo do projeto, o gh-pages ramifica. Crie um arquivo CNAME com o conteúdo yourdomain.com. Confirme e empurre.
  2. No seu gerenciador de DNS, configure dois cnameregistros. Um para o ápice raiz (@) e outro para www. Ambos apontam para YOURusername.github.io. Se o seu provedor de DNS NÃO suportar ALIASregistros no ápice raiz (@), basta criar Aregistros que apontem para 192.30.252.153e192.30.252.154
  3. Aguarde até a atualização dos servidores de nomes:

    dig yourdomain.com +nostats +nocomments +nocmd

rynop
fonte
14
Em 19 de abril de 2012, a documentação do GitHub é usada 204.232.175.78como endereço IP.
Aseem Kishore
31
Verificado em 6 de fevereiro de 2014 e os documentos do github dizem: Criar registros DNS A que apontam para os seguintes endereços IP: 192.30.252.153, 192.30.252.154.
6119 Danny
2
"Se você estiver usando um registro A que aponta para 207.97.227.245 ou 204.232.175.78, será necessário atualizar suas configurações de DNS, pois não servimos mais as páginas diretamente desses servidores". help.github.com/articles/my-custom-domain-isn-t-working - 3/8/14
eddywashere
11
Acho que não é possível configurar um registro CNAME a partir do domínio naked @. É por isso que você precisa dos registros A, para manipular o redirecionamento do domínio nu para o subdomínio www. É um problema com qualquer cloudhost. Não há garantia de um IP fixo.
superluminary 12/03
2
@rynop O GoDaddy não permite @ e www para yourusername.github.io, apenas um registro CNAME por subdomínio :(
Tejas Manohar
241

Visão geral

A documentação é um pouco confusa quando se trata de páginas do projeto , em oposição às páginas do usuário . Parece que você deveria fazer mais, mas na verdade o processo é muito fácil.

Envolve:

  1. Configurando 2 registros A estáticos para o domínio nu (sem www).
  2. Criando um registro CNAME para www que apontará para um URL do GitHub. Isso manipulará o redirecionamento de www para você.
  3. Criando um arquivo chamado CNAME (capitalizado) na raiz do seu projeto na ramificação gh-pages. Isso informará ao Github qual URL responder.
  4. Aguarde tudo se propagar.

O que você receberá

Seu conteúdo será veiculado em um URL no formato http://nicholasjohnson.com .

Visitar http://www.nicholasjohnson.com retornará um redirecionamento 301 para o domínio nu.

O caminho será respeitado pelo redirecionamento; portanto, o tráfego para http://www.nicholasjohnson.com/angular será redirecionado para http://nicholasjohnson.com/angular .

Você pode ter uma página de projeto por repositório; portanto, se seus repositórios estiverem abertos, poderá ter quantas quiser.

Aqui está o processo:

1. Crie registros A

Para os registros A, aponte @ para os seguintes endereços IP:

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

Esses são os endereços IP estáticos do Github nos quais seu conteúdo será veiculado.

2. Crie um registro CNAME

Para o registro CNAME, aponte www para yourusername.github.io. Observe o ponto final à direita. Observe também que este é o nome de usuário, não o nome do projeto . Você não precisa especificar o nome do projeto ainda. O Github usará o arquivo CNAME para determinar de qual projeto servir o conteúdo.

por exemplo

www: forwardadvance.github.io.

O objetivo do CNAME é redirecionar todo o tráfego do subdomínio www para uma página do GitHub que será redirecionada 301 para o domínio sem registro.

Aqui está uma captura de tela da configuração que eu uso no meu próprio site http://nicholasjohnson.com :

Registros A e CNAME necessários para as páginas estáticas do Github

3. Crie um arquivo CNAME

Adicione um arquivo chamado CNAME à raiz do seu projeto na ramificação gh-pages. Isso deve conter o domínio que você deseja veicular. Certifique-se de cometer e empurrar.

por exemplo

nicholasjohnson.com

Este arquivo diz ao GitHub para usar este repositório para manipular o tráfego para este domínio.

4. Aguarde

Agora aguarde 5 minutos, sua página do projeto agora deve estar ativa.

superluminário
fonte
1
Não, o domínio do ápice tem um IP estático. O subdomínio www tem o CNAME.
superluminary 27/03
4
@ superluminary, repeti seu processo e tenho dois problemas: 1) Estou usando o freeDNS fear.org para compartilhamento de DNS, o que não permite adicionar à direita. em username.github.io .. 2) quando adicionei o URL do github.io sem arrastar., meudominio.com está funcionando, mas não consigo acessar www.meudomínio.com?
precisa saber é o seguinte
4
A parte que não consegui descobrir por meio dos documentos do GitHub era qual URL usar no projeto. Obrigado por esta resposta: "este é o nome de usuário, não o nome do projeto". Então useyourUserName.github.io.
pkamb
1
Atualizei esta solução e realmente recomendo fazê-lo. Você pode fazê-lo funcionar de outras maneiras, por exemplo, usando um CNAME para o host @, mas ele quebrará os emails etc. Essa é a melhor solução que encontrei. Obrigado.
Steven L.
1
Obrigado! Eu estava preso no valor correto para o registro CNAME no DNS - apenas organization.github.io, independentemente do projeto da organização que você está tentando oferecer. (ie, organização.github.io
repo
21

Se você está se perguntando como exibir seu domínio, em www.mydomain.comvez de redirecionar a wwwsolicitação mydomain.com, tente o seguinte:

Arquivo CNAME nas páginas gh ramo terá uma linha:

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

Não importa a sua preferência no redirecionamento (em outras palavras, não importa o que está no seu arquivo CNAME na ramificação gs-pages), com o seu provedor de DNS , você deve configurá-lo assim:

A      @    192.30.252.154
A      @    192.30.252.153
CNAME  www  username.github.io
Phil
fonte
@zwacky, por que não consigo apontar o CNAME para @? por que "www.mydomain.com" e "mydomain.com" resolvem IPs potencialmente diferentes?
aaa90210
19

Resposta curta

Essas explicações detalhadas são ótimas, mas a confusão do OP (e minha) pode ser resolvida com uma frase: "Direcione o DNS ao seu nome de usuário ou organização do GitHub , ignorando o projeto específico, e adicione os arquivos CNAME apropriados nos repositórios do projeto: o GitHub enviará o DNS certo para o projeto certo com base nos arquivos no repositório " .

Jim Pivarski
fonte
1
Não faço ideia do que significa "enviar DNS".
ceving 16/05/19
Redirecione as consultas DNS, para que solicitações HTTP com nomes de domínio específicos obtenham os documentos corretos como respostas.
Jim Pivarski
13

Em 29 de agosto de 2013, a documentação do Github afirma que:

Aviso: os subcaminhos das páginas do projeto, como http://username.github.io/projectname , não serão redirecionados para o domínio personalizado de um projeto.

Amio
fonte
3
Estou confuso por que eles adicionaram esse comportamento. Eu quero que meu .com aponte para as páginas do github, não o contrário.
Jordan Scales
9
Eu também fiquei muito confuso com isso. Pelo que entendi agora, você ainda pode apontar yoursite.com para páginas do github, mas yourusername.github.io/yoursite não será redirecionado para yoursite.com. Não há problema, pois o yoursite.com continuará funcionando, apenas atualize seus registros DNS e aguarde a solução. help.github.com/articles/…
eddywashere
Isso deve ter ramificações de SEO (Search Engine Optimization) para o site. Diz-se que o Google rebaixa a classificação de resultados de conteúdo acessível a partir de vários domínios, que é um dos vários motivos para a aplicação de redirecionamentos 301 ("permanentes") de username.github.io/projectnamepara www.projectname.com.
precisa
3

As coisas estão muito mais fáceis hoje em dia!

  1. Atualize seu registro de domínio Apex (@) para apontar

192.30.252.154

192.30.252.153

  1. Edite seu campo de domínio Custome nas configurações de repo do github.

enter image description here

  1. www e outros subdomínios podem ser atualizados como CNAME para apex domain.
Rafaf Tahsin
fonte
2

Acabei de descobrir, após um pouco de frustração, que, se você estiver usando o PairNIC , tudo o que você precisa fazer é ativar a configuração "Web Forwarding" em "DNS personalizado" e fornecer o endereço username.github.io/project e ele será configure automaticamente os registros apex e subdomínio para você. Parece fazer exatamente o que é sugerido na resposta aceita. No entanto, não permitirá que você faça exatamente a mesma coisa adicionando registros manualmente. Muito estranho. De qualquer forma, demorei um pouco para descobrir isso, então pensei em compartilhar para salvar todo mundo do problema.

Brandon Fosdick
fonte
0

Gostaria de compartilhar meus passos, um pouco diferentes do que é oferecido pelo rynop e pelo superluminário .

  • para A Record é exatamente o mesmo, mas
  • em vez de criar CNAMEpara, wwweu preferiria redirecioná-lo para meu domínio em branco ( non-www)

Esta configuração está se referindo às orientações do domínio preferido . A configuração de domínio de wwwa non wwwou vice-versa pode ser diferente em cada um dos provedores de domínio. Como meu domínio está no GoDaddy, na Configuração do domínio, eu o defino usando o encaminhamento de subdomínio (301).

Como resultado de apontar o domínio para o repositório do Github, ele fornecerá todos os URLs para masteregh-pages ramificar semelhantes, como os listados abaixo, para o domínio preferido:

mestre

Criando CNAMEarquivo na masterramificação (verifique no meu repositório de usuários ).

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

páginas gh

Criando o mesmo CNAMEarquivo na gh-pagesramificação (verifique no meu repositório de projetos ).

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

Além do CNAMEarquivo acima, você pode precisar ignorar completamente o processamento do Jekyll nas páginas do GitHub, criando um arquivo nomeado .nojekyllna raiz do repositório de páginas.

Chetabahana
fonte
3
Eu recomendaria não usar godaddy, mas apenas opinião pessoal #
MMachinegun