GitHub 프로젝트 페이지의 사용자 정의 도메인


436

나는이 gh-pages내 중 한 가지를 http://github.com 의 repos. http://myuser.github.com/myrepo 로 이동하면 GitHub 프로젝트 페이지가 제대로 작동합니다 .

이 프로젝트 페이지를 제공 할 사용자 정의 도메인 (myexample.com)을 설정하고 싶습니다. 이 프로젝트 페이지를 모두 제공 myexample.com 하고 싶습니다 www.myexample.com.

GitHub 페이지 는 DNS에 A 레코드와 CNAME 레코드를 만드는 데 도움 이됩니다. A 레코드는 의미가 있지만 DNS에서 어떤 CNAME 레코드를 만들어야하는지 모르겠습니다.

gh-pages문서는 할 말을 CNAME사용자 페이지 저장소입니다 'charlie.github.com'에 대한 기록. 나는 사용자 문서 저장소가없는 - 나는 단지 프로젝트 저장소와이 gh-pages내가 사용하려는 지점 myexample.comwww.myexample.com.

www.myexample.com 및 myexample.com에 대한 프로젝트 페이지를 사용할 수 있도록 사용자 페이지 저장소를 만들어야합니까?

나는 그것을 시도하려고하지만 이미 www.myexample.com을 가지고 있고 실수를하고 싶지 않기 때문에 이것이 작동하는지 확인하고 싶습니다.

GitHub 지원팀에 이메일을 보냈으며 응답은

내가 아는 한 동일한 gh 페이지를 가리킬 수는 없습니다.

프로젝트 페이지에 대한 A 레코드 만 지원한다고 믿기가 어렵습니다.

아무도 전에 이것을 성공적으로 했습니까?


10
207.97.227.245 (CNAME 레코드 없음)를 가리키는 A 레코드로 lacewing-project.org 를 설정했으며 정상적으로 작동합니다. 또한 도메인 이름을 포함하는 gh-pages 분기의 루트에 CNAME이라는 파일을 넣었습니다.
James McLaughlin

필자의 경우 CNAME 파일을 gh-pages 분기에 배치하면 트릭을 수행했습니다. 감사합니다!
jarandaf

답변:


522

19 1/21/19 업데이트 :

내 마지막 대답 이후 상황이 약간 바뀌 었습니다. 이 업데이트 된 답변은 구성 방법을 보여줍니다.

  1. 루트 에이펙스 (example.com)
  2. 하위 도메인 (www.example.com)
  3. HTTPS (선택적이지만 강력하게 권장 됨)

결국 모든 요청 example.comhttps://www.example.com (또는 HTTPS를 사용하지 않도록 선택한 경우 http : //) 으로 리디렉션됩니다 . 나는 항상 www내 최종 착륙으로 사용합니다. 왜 ( 1 , 2 )는 또 다른 토론을위한 것입니다.

이 답변은 길지만 복잡 하지 않습니다 . 이 주제에 대한 GitHub 문서가 명확하지 않거나 선형 적이 지 않기 때문에 명확하게 설명했습니다.

1 단계 : GitHub 설정에서 GitHub 페이지 활성화

  1. 리포지토리에서 탭을 클릭 하십시오
  2. GitHub Pages섹션으로 스크롤 하십시오. 두 가지 옵션이 있습니다.
  3. 선택 master branch하면 /README.md웹으로 취급 됩니다 index.html. 선택 master branch /docs folder하면 /docs/README.md웹으로 취급 됩니다 index.html.
  4. 테마를 선택하십시오.
  5. GitHub가 사이트를 게시하는 동안 잠시 기다려주십시오. 옆의 링크를 클릭하여 작동하는지 확인하십시오Your site is ready to be published at

2 단계 : GitHub 설정에서 사용자 정의 도메인 지정

여기에 사용자 정의 도메인 이름을 입력하고 다음을 누르십시오 save.

이것은 미묘하지만 중요한 단계입니다.

  • GitHub 페이지 사이트에 추가 한 맞춤 도메인이 example.com로 설정 www.example.com되면example.com
  • GitHub 페이지 사이트에 추가 한 사용자 지정 도메인이 www.example.com인 경우 (으) example.com로 리디렉션됩니다 www.example.com.

앞서 언급 한 바와 같이, 나는에 착륙 항상 추천 www내가 입력 한 있도록 www.example.com로 위의 사진.

3 단계 : DNS 항목 만들기

DNS 제공 업체의 웹 콘솔에서 4 개의 A레코드와 1 개의 레코드를 만듭니다 CNAME.

  1. A@(일명 루트 정점)에 대한 기록 :

일부 DNS 공급자는을 지정 @하고 다른 DNS 공급자는 (예 : AWS Route 53) 하위 도메인을 비워두고을 나타냅니다 @. 두 경우 모두 다음 과 같은 A레코드를 작성합니다.

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
  1. CNAMEwww.example.com을 가리 키 도록 레코드를 작성하십시오 YOUR-GITHUB-USERNAME.github.io.

가장 혼란스러운 부분입니다.

GitHub 리포지토리 이름 이 YOUR-GITHUB-USERNAME 아닙니다 ! 의 값은 이 차트에YOUR-GITHUB-USERNAME 의해 결정됩니다 .

A의 사용자 페이지 (가장 가능성이 당신이 무엇을) 사이트 CNAME항목이 될 것입니다 username.github.io, 예 :

A의 조직 페이지 사이트 CNAME항목이 될 것입니다 orgname.github.io, 예 :

5 단계 : DNS 항목 확인

  1. A를 실행 하여 레코드를 확인하십시오 dig +noall +answer example.com. 185.x.x.x입력 한 4 개의 IP 주소를 반환해야합니다 .

  2. CNAME를 실행 하여 레코드를 확인합니다 dig www.example.com +nostats +nocomments +nocmd. 반환해야합니다CNAME YOUR-GITHUB-USERNAME.github.io

이러한 DNS 항목이 해결 / 전파되는 데 1 시간 정도 걸릴 수 있습니다. 일단 그렇게되면 브라우저를 열고 http://example.com다시 리디렉션해야합니다.http://www.example.com

6 단계 : SSL (HTTPS) 구성 선택적이지만 적극 권장

사용자 정의 도메인이 작동되면 리포지토리 설정으로 돌아갑니다. 설정 페이지가 이미 열려 있으면 페이지를 강제로 새로 고침하십시오.

Enforce HTTPS확인란 아래에 아직 처리 중임을 알리는 메시지 가 있으면 기다려야합니다. 처리 를 시작하기 save위해 Custom domain섹션 의 버튼을 눌러야 할 수도 있습니다 Enforce HTTPS.

처리가 완료되면 다음과 같아야합니다.

여기에 이미지 설명을 입력하십시오

Enforce HTTPS확인란을 클릭하고 브라우저를 가리 킵니다 https://example.com. 리디렉션하고 열어야합니다.https://www.example.com

그게 다야!

GitHub는 자동으로 HTTPS 인증서를 최신 상태로 유지하며 에이펙스를 처리하여 wwwHTTPS를 통해 리디렉션합니다.

도움이 되었기를 바랍니다!!

...

이전 (19/2 월 3 일 이전) 답변

그래서 알아 냈습니다. James McLaughlin 이 내게 필요한 넛 지를 주었습니다.

www.yourdomain.com 및 yourdomain.com을 처리하는 gh-pages 프로젝트 페이지 저장소에 대한 사용자 정의 도메인을 설정하려면 (이미 저장소에 gh-pages 분기가 있다고 가정) :

  1. 프로젝트 저장소에서 gh-pages branch. 내용으로 CNAME 파일을 만듭니다 yourdomain.com. 그런 다음 커밋하십시오.
  2. DNS 관리자에서 두 개의 cname레코드를 설정하십시오 . 하나는 루트 정점 (@)과 다른 하나는 www입니다. 둘 다 가리 킵니다 YOURusername.github.io. DNS 공급자가 지원하지 않는 경우 ALIAS루트 정점에 기록 (@), 간단하게 만들 수 A기록을 포인트로 그 192.30.252.153192.30.252.154
  3. 네임 서버가 업데이트 될 때까지 기다리십시오 :

    dig yourdomain.com +nostats +nocomments +nocmd


14
2012 년 4 월 19 일부터 GitHub의 설명서204.232.175.78IP 주소로 사용 됩니다.
Aseem Kishore

31
2014 년 2 월 6 일과 github 문서에서 다음과 같이 말합니다. 192.30.252.153, 192.30.252.154와 같은 IP 주소를 가리키는 DNS A 레코드를 만듭니다.
Danny

2
"207.97.227.245 또는 204.232.175.78을 가리키는 A 레코드를 사용하는 경우 더 이상 해당 서버에서 직접 페이지를 제공하지 않으므로 DNS 설정을 업데이트해야합니다." help.github.com/articles/my-custom-domain-isn-t-working - 3/8/14
eddywashere

11
네이 키드 @ 도메인에서 CNAME 레코드를 설정할 수 없다고 생각합니다. 따라서 기본 도메인에서 www 하위 도메인으로의 리디렉션을 처리하려면 A 레코드가 필요합니다. 모든 클라우드 호스트에 문제가 있습니다. 고정 IP를 보장하지 않습니다.
superluminary

2
@rynop GoDaddy는 @ 및 www를 yourusername.github.io에 허용하지 않으며 하위 도메인 당 하나의 CNAME 레코드 만 허용합니다. (
Tejas Manohar

241

개요

문서 가 올 때 조금 혼란 프로젝트 페이지 는 달리, 사용자 페이지 . 더 많은 일을해야한다고 생각하지만 실제로는 프로세스가 매우 쉽습니다.

여기에는 다음이 포함됩니다.

  1. 기본 (www 없음) 도메인에 대해 2 개의 정적 A 레코드 설정
  2. www에 대해 하나의 CNAME 레코드를 작성하면 GitHub URL을 가리 킵니다. www 리디렉션을 처리합니다.
  3. gh-pages 브랜치에서 프로젝트 루트에 CNAME (대문자) 파일을 만듭니다. 그러면 Github에 응답 할 URL을 알려줍니다.
  4. 모든 것이 전파 될 때까지 기다리십시오.

당신이 얻을 것

귀하의 콘텐츠는 http://nicholasjohnson.com 형식의 URL에서 제공됩니다 .

http://www.nicholasjohnson.com 을 방문 하면 기본 도메인으로 301 리디렉션이 반환됩니다.

경로는 경로 재 지정에 의해 존중되므로 http://www.nicholasjohnson.com/angular에 대한 트래픽 은 http://nicholasjohnson.com/angular 로 경로 재 지정됩니다 .

저장소 당 하나의 프로젝트 페이지를 가질 수 있으므로 저장소가 열려 있으면 원하는만큼 가질 수 있습니다.

과정은 다음과 같습니다.

1. A 레코드 생성

A 레코드의 경우 @를 다음 IP 주소로 지정하십시오.

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

이들은 귀하의 콘텐츠가 제공 될 정적 Github IP 주소입니다.

2. CNAME 레코드 만들기

CNAME 레코드의 경우 www를 yourusername.github.io로 지정하십시오. 후행 완전 정지에 유의하십시오. 또한 이것은 프로젝트 이름이 아닌 사용자 이름 입니다. 아직 프로젝트 이름을 지정할 필요가 없습니다. Github는 CNAME 파일 을 사용하여 콘텐츠를 제공 할 프로젝트를 결정합니다.

예 :

www: forwardadvance.github.io.

CNAME의 목적은 모든 www 하위 도메인 트래픽을 GitHub 페이지로 리디렉션하여 기본 도메인으로 301 리디렉션하는 것입니다.

내 사이트 http://nicholasjohnson.com에 사용하는 구성의 스크린 샷은 다음과 같습니다 .

Github 정적 페이지에 필요한 A 및 CNAME 레코드

3. CNAME 파일 생성

gh-pages 분기의 프로젝트 루트에 CNAME이라는 파일을 추가하십시오. 서비스하려는 도메인이 포함되어 있어야합니다. 커밋하고 푸시하십시오.

예 :

nicholasjohnson.com

이 파일은 GitHub에이 리포지토리를 사용하여이 도메인에 대한 트래픽을 처리하도록 지시합니다.

4. 기다려

이제 5 분 정도 기다리면 프로젝트 페이지가 활성화됩니다.


1
아니요, apex 도메인에는 고정 IP가 있습니다. www 하위 도메인에는 CNAME이 있습니다.
superluminary

4
@ superluminary, 나는 당신의 과정을 반복했으며 두 가지 문제가 있습니다 .1) DNS 공유에 freeDNS afraid.org를 사용하고 있습니다. 후행을 추가 할 수 없습니다. username.github.io ..에서 2).. hubhub.io url을.없이 추가하면 mydomain.com이 작동하지만 www.mydomain.com에 액세스 할 수 없습니까 ??
bistaumanga

4
GitHub 문서를 통해 알아낼 수 없었던 부분은 프로젝트에 사용할 URL이었습니다. 이 답변에 감사드립니다. "프로젝트 이름이 아닌 사용자 이름입니다." 그래서 사용yourUserName.github.io.
pkamb

1
이 솔루션을 업데이트했으며 실제로 권장합니다. @ 호스트에 CNAME을 사용하는 등 다른 방식으로 작동하도록 할 수 있지만 전자 메일 등이 중단됩니다. 이것이 내가 찾은 최고의 솔루션입니다. 감사합니다.
Steven L.

1
감사합니다! 조직의 어떤 프로젝트를 수행하든 상관없이 DNS의 organization.github.io에서 CNAME 레코드의 올바른 값을 고수했습니다. (즉, NOT organization.github.io/repo)
Libby

21

요청을 (으) www.mydomain.com로 리디렉션하는 대신 도메인을 표시하는 방법이 궁금하다면 다음을 시도하십시오.wwwmydomain.com

gh-pages 브랜치의 CNAME 파일 에는 한 줄이 있습니다.

www.mydomain.com(대신 mydomain.com)

DNS 공급자와 함께 리디렉션에 대한 환경 설정 (즉, gs-pages 분기의 CNAME 파일에있는 내용에 상관없이)에 관계없이 다음과 같이 설정해야합니다.

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

@zwacky 왜 CNAME을 @로 가리킬 수 없습니까? "www.mydomain.com"과 "mydomain.com"이 잠재적으로 다른 IP로 해석되는 이유는 무엇입니까?
aaa90210

19

짧은 답변

이러한 자세한 설명은 훌륭하지만 OP (및 나의) 혼동은 다음과 같은 한 문장으로 해결 될 수 있습니다. "GitHub 사용자 이름 또는 조직 에 대한 DNS를 직접 지정하고 특정 프로젝트를 무시하고 프로젝트 저장소에 적절한 CNAME 파일 을 추가하십시오 . GitHub가 전송합니다 에 따라 적합한 프로젝트에 대한 권리 DNS 파일 에서 respository. "


1
"DNS 전송"이 무엇을 의미하는지 잘 모르겠습니다.
17.

특정 도메인 이름을 가진 HTTP 요청이 올바른 문서를 응답으로 얻도록 DNS 쿼리를 리디렉션하십시오.
Jim Pivarski

13

2013 년 8 월 29 일 기준으로 Github의 문서 는 다음과 같이 주장합니다.

경고 : http://username.github.io/projectname 과 같은 프로젝트 페이지 하위 경로 는 프로젝트의 사용자 지정 도메인으로 리디렉션되지 않습니다.


3
그들이 왜이 행동을 추가했는지 혼란스러워합니다. 내 .com이 github 페이지를 가리키고 다른 방법은 아닙니다.
Jordan Scales

9
나도 이것으로 정말 혼란 스러웠다. 이제 이해하지만 yoursite.com을 github 페이지로 지정할 수는 있지만 yourusername.github.io/yoursite는 yoursite.com으로 리디렉션되지 않습니다. yoursite.com이 계속 작동하기 때문에 괜찮습니다. dns 레코드를 업데이트하고 문제가 해결 될 때까지 기다리십시오. help.github.com/articles/…
eddywashere

웹 사이트에 SEO (검색 엔진 최적화) 효과가 있어야합니다. 구글에서 301 ( "영구") 리디렉션을 적용하기위한 몇 가지 이유 중 하나입니다 여러 도메인에서 액세스 할 수있는 내용의 순위 결과 강등라고 username.github.io/projectname까지를 www.projectname.com.
Borromean11시

3

요즘은 훨씬 쉬워요!

  1. Apex 도메인 (@) 레코드를 가리 키도록 업데이트

192.30.252.154

192.30.252.153

  1. github repo 설정에서 Custome 도메인 필드를 편집하십시오 .

enter image description here

  1. www 및 기타 하위 도메인은 CNAME으로 apex 도메인으로 업데이트 할 수 있습니다.

2

방금 약간의 좌절감을 보인 후에 PairNIC을 사용하는 경우 "Custom DNS"에서 "Web Forwarding"설정을 활성화하고 username.github.io/project 주소를 제공하기 만하면 됩니다. apex 및 하위 도메인 레코드를 자동으로 설정합니다. 허용 된 답변에서 제안 된 것과 정확히 일치하는 것으로 보입니다. 그러나 수동으로 레코드를 추가하여 똑같은 작업을 수행 할 수는 없습니다. 아주 이상한. 어쨌든, 그것을 알아내는 데 시간이 걸렸습니다. 그래서 다른 사람들을 구하기 위해 공유 할 것이라고 생각했습니다.


0

나는 rynopsuperluminary가 제공하는 것과 약간 다른 단계 를 공유하고 싶습니다 .

  • 에 대한 A기록 동일하지만입니다
  • 대신 만드는 CNAME위해 www나는 (내 빈 도메인에 리디렉션하는 것을 선호 non-www)

이 구성은 선호 도메인의 지침을 참조 합니다 . 의 도메인 설정 wwwnon www또는 바이스 반대의 도메인 제공 업체에 각각 다를 수 있습니다. 내 도메인이 GoDaddy에 있으므로 도메인 설정 에서 하위 도메인 전달 (301)을 사용하여 설정했습니다 .

도메인을 Github 리포지토리로 지정하면 아래 나열된 URL mastergh-pages유사한 지점 및 지점에 대한 모든 URL 이 선호 도메인으로 이동합니다.

석사

지점에 CNAME파일을 만들면 master( 사용자 저장소 에서 확인하십시오 ).

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

gh-pages

브랜치 에서 동일한 CNAME파일을 생성하여 gh-pages( 프로젝트 저장소 에서 확인하십시오 ).

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

CNAME위 의 파일 외에도 페이지 저장소의 루트에 이름이 지정된 파일을 만들어 GitHub 페이지에서 Jekyll 처리 를 완전히 무시 해야 할 수도 있습니다 .nojekyll.


3
나는 godaddy를 사용 하지 말고 개인적인 의견을 추천합니다
MMachinegun
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.