Пользовательский домен для страниц проекта GitHub
У меня есть ветвь gh-pages
в одном из репозиториев http://github.com. Страницы проекта GitHub отлично работают, если я перейду к http://myuser.github.com/myrepo
Я хочу настроить собственный домен (myexample.com), который будет обслуживать эти страницы проекта. Я хочу и myexample.com
и www.myexample.com
обслуживать эти страницы проекта.
Справка GitHub говорит, чтобы сделать запись A и запись CNAME в вашем DNS. Запись A имеет смысл, но я не знаю, что запись CNAME делает в моем DNS.
Документы gh-pages
говорят, что сделать запись CNAME
для "charlie.github.com", которая является репозиторием пользовательских страниц. У меня нет репозитория пользовательской страницы - у меня есть только репозиторий проекта и ветвь gh-pages
, которую я хочу использовать для myexample.com
и www.myexample.com
.
Нужно ли мне создавать репозиторий пользовательской страницы, чтобы я мог использовать мою страницу проекта для www.myexample.com и myexample.com?
Я бы просто попробовал, но я хочу убедиться, что это сработает, поскольку у меня уже есть сайт www.myexample.com и вы не хотите ошибаться.
Я отправил по электронной почте поддержку GitHub, и их ответ был
Вы не можете указывать на одни и те же gh-страницы, насколько я знаю.
Мне трудно поверить, что они будут поддерживать только записи A для страниц проекта.
Кто-нибудь успешно сделал это раньше?
Ответы
Ответ 1
23.01.19 ОБНОВЛЕНИЕ:
С момента моего последнего ответа все немного изменилось (в лучшую сторону). Этот обновленный ответ покажет вам, как настроить:
- Корневая вершина (example.com)
- Поддомен (www.example.com)
- HTTPS (необязательно, но настоятельно рекомендуется)
В итоге все запросы к example.com
будут перенаправлены на https://www.example.com (или http://, если вы решите НЕ использовать HTTPS). Я всегда использую www
качестве моей последней посадки. Почему (1, 2), для другого обсуждения.
Этот ответ длинный, но не сложный. Я был многословен для ясности, поскольку документы GitHub по этой теме не являются четкими или линейными.
Шаг 1: Включите страницы GitHub в настройках GitHub
- В репо нажмите на вкладку
![tVVrt.png]()
- Прокрутите вниз до раздела
GitHub Pages
. У вас есть два варианта: ![mwXnO.png]()
- При выборе
master branch
/README.md
будет /README.md
вашим веб- index.html
. При выборе master branch/docs folder
/docs/README.md
будет /docs/README.md
вашим веб- index.html
. - Выберите тему
- Подождите минуту, пока GitHub публикует ваш сайт. Убедитесь, что он работает, нажав на ссылку рядом с
Your site is ready to be published at
Шаг 2: Укажите пользовательский домен в настройках GitHub
Введите здесь свое доменное имя и нажмите " save
: ![s7Ib1.png]()
Это тонкий, но важный шаг.
- Если пользовательским доменом, который вы добавили на свой сайт GitHub Pages, является
example.com
, то www.example.com
будет перенаправлен на example.com
- Если пользовательский домен, который вы добавили на свой сайт GitHub Pages, это
www.example.com
, то example.com
будет перенаправлен на www.example.com
.
Как упоминалось ранее, я рекомендую всегда заходить на www
поэтому я зашел на www.example.com
как показано выше.
Шаг 3. Создание записей DNS
В веб-консоли вашего DNS-провайдера создайте четыре записи A
и одну CNAME
.
-
A
Записи для @
(он же root apex):
Некоторые провайдеры DNS попросят вас указать @
, другие (например, AWS Route35) оставят субдомен пустым, чтобы указать @
. В любом случае, они являются A
записи для создания:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
- Создайте запись
CNAME
чтобы указать www.example.com на YOUR-GITHUB-USERNAME.github.io
.
Это самая запутанная часть.
Обратите внимание, YOUR-GITHUB-USERNAME
НЕ YOUR-GITHUB-USERNAME
РЕПО GitHub! Значение YOUR-GITHUB-USERNAME
определяется этим графиком.
Для сайта страниц пользователя (скорее всего, тем, кто вы есть) запись CNAME
будет username.github.io
, например: ![d4r75.png]()
Для сайта страниц организации запись CNAME
будет orgname.github.io
, например: ![Z290i.png]()
Шаг 5: Подтвердите записи DNS
-
Подтвердите свои записи A
, запустив dig +noall +answer example.com
. Он должен вернуть четыре 185.xxx
IP-адреса 185.xxx
.
-
Подтвердите свою запись CNAME
, запустив dig www.example.com +nostats +nocomments +nocmd
. Он должен вернуть CNAME YOUR-GITHUB-USERNAME.github.io
Разрешение/распространение этих записей DNS может занять около часа. Как только они это сделают, откройте ваш браузер на http://example.com
и он должен перенаправить на http://www.example.com
Шаг 6: Конфигурация SSL (HTTPS). Необязательно, но настоятельно рекомендуется
После того, как ваш пользовательский домен заработал, вернитесь к настройкам репо. Если страница настроек уже открыта, обновите страницу.
Если под Enforce HTTPS
есть сообщение о том, что оно все еще обрабатывается, вам придется подождать. Вам также может понадобиться нажать кнопку " save
в разделе " Custom domain
", чтобы начать обработку Enforce HTTPS
.
После завершения обработки это должно выглядеть так:
![enter image description here]()
Просто установите флажок Enforce HTTPS
и укажите в браузере https://example.com
. Он должен перенаправить и открыть https://www.example.com
ВОТ И ВСЕ!
GitHub будет автоматически поддерживать ваш сертификат HTTPS в актуальном состоянии И должен обрабатывать перенаправление на www
через HTTPS.
Надеюсь это поможет!!
...
Старый (до 23.01.19) ответ
Так что я понял это. Джеймс Маклафлин дал мне толчок, который мне был нужен.
Чтобы настроить пользовательский домен для репозитория gh-pages Project Pages, который обрабатывает www.yourdomain.com и yourdomain.com (предполагается, что у вас уже есть ветка gh-pages в вашем репо):
- Из репо вашего проекта, ветка gh-pages. Создайте файл CNAME с содержимым
yourdomain.com
. Зафиксируйте затем нажмите. - В вашем диспетчере DNS настройте две записи
cname
. Один для корневого апекса (@) и один для www. Оба указывают на YOURusername.github.io
. Если ваш DNS-провайдер НЕ поддерживает записи ALIAS
в корневой вершине (@), просто создайте записи A
которые указывают на 192.30.252.153
и 192.30.252.154
-
Подождите, пока обновятся ваши серверы имен:
dig yourdomain.com +nostats +nocomments +nocmd
Ответ 2
обзор
Документация немного сбивает с толку, когда речь идет о страницах проекта, в отличие от пользовательских страниц. Такое чувство, что вам нужно сделать больше, но на самом деле процесс очень прост.
Это включает в себя:
- Настройка 2 статических A-записей для голого (без www) домена.
- Создание одной записи CNAME для www, которая будет указывать на URL GitHub. Это будет обрабатывать перенаправление www для вас.
- Создание файла с именем CNAME (заглавными буквами) в корневом каталоге вашего проекта на ветке gh-pages. Это скажет Github, на какой URL отвечать.
- Подождите, пока все распространится.
Что вы получите
Ваш контент будет обслуживаться с URL-адреса в форме http://nicholasjohnson.com.
Посещение http://www.nicholasjohnson.com вернет редирект 301 на голый домен.
Путь будет учитываться при перенаправлении, поэтому трафик на http://www.nicholasjohnson.com/angular будет перенаправлен на http://nicholasjohnson.com/angular.
Вы можете иметь одну страницу проекта на репозиторий, поэтому, если ваши репозитории открыты, вы можете иметь столько, сколько захотите.
Здесь процесс:
1. Создать записи
Для записей A укажите @на следующие IP-адреса:
@: 185.199.108.153
@: 185.199.109.153
@: 185.199.110.153
@: 185.199.111.153
Это статические IP-адреса Github, с которых будет обслуживаться ваш контент.
2. Создайте запись CNAME
Для записи CNAME укажите www на yourusername.github.io. Обратите внимание на трейлинг-стоп. Обратите внимание, что это имя пользователя, а не имя проекта. Вам еще не нужно указывать название проекта. Github будет использовать файл CNAME, чтобы определить, из какого проекта будет обрабатываться контент.
например
www: forwardadvance.github.io.
Цель CNAME - перенаправить весь трафик поддоменов www на страницу GitHub, которая будет перенаправлять 301 на пустой домен.
Вот скриншот конфигурации, которую я использую для своего собственного сайта http://nicholasjohnson.com:
![A and CNAME records required for Github Static Pages]()
3. Создайте файл CNAME
Добавьте файл с именем CNAME в корневой каталог вашего проекта в ветке gh-pages. Он должен содержать домен, который вы хотите обслуживать. Убедитесь, что вы совершаете и нажимаете
например
nicholasjohnson.com
Этот файл говорит GitHub использовать этот репозиторий для обработки трафика в этот домен.
4. Подождите
Теперь подождите 5 минут, страница вашего проекта должна быть активна.
Ответ 3
Если вам интересно, как заставить ваш домен отображаться как www.mydomain.com
вместо перенаправления запроса www
на mydomain.com
, попробуйте следующее:
Файл CNAME на ветках gh-pages будет иметь одну строку:
www.mydomain.com
(вместо mydomain.com
)
Независимо от ваших предпочтений при перенаправлении (другими словами, независимо от того, что находится в вашем файле CNAME в ветке gs-pages) с поставщиком DNS, вы должны настроить его следующим образом:
A @ 192.30.252.154
A @ 192.30.252.153
CNAME www username.github.io
Ответ 4
По состоянию на 29 августа 2013 г. Документация Github утверждают, что:
Предупреждение: субпакеты страниц проекта, такие как http://username.github.io/projectname, не будут перенаправлены в пользовательский домен проекта.
Ответ 5
Короткий ответ
Эти подробные объяснения велики, но путаница OP (и моей) может быть решена одним предложением: "Прямой DNS для вашего имени или организации GitHub, игнорируя конкретный проект и добавляя соответствующие файлы CNAME в ваш репозитории проектов: GitHub отправит правильный DNS в нужный проект на основе файлов в репозитории.
Ответ 6
Сейчас все намного проще!
- Обновите запись своего домена Apex (@), чтобы указать
192.30.252.154
192.30.252.153
- Отредактируйте поле домена Custome в настройках репозитория github.
![enter image description here]()
- www и другие субдомены могут быть обновлены как CNAME для домена apex.
Ответ 7
Я только после некоторого разочарования обнаружил, что если вы используете PairNIC, все, что вам нужно сделать, это включить "Веб-переадресация" в разделе "Пользовательский DNS" и укажите адрес username.github.io/project, и он автоматически настроит для вас как вершины, так и субдомены. Кажется, он делает то, что было предложено в принятом ответе. Тем не менее, это не позволит вам сделать то же самое, вручную добавив записи. Очень странно. Во всяком случае, мне потребовалось некоторое время, чтобы понять это, поэтому я решил поделиться с вами, чтобы спасти всех остальных.
Ответ 8
Я хотел бы поделиться моими шагами, который немного отличается от того, что предлагает rynop и superluminary.
- для
A
Запись точно такая же, но
- вместо создания
CNAME
для www
Я бы предпочел перенаправить его в мой пустой домен (non-www
)
Эта конфигурация относится к руководству предпочтительный домен. Настройки домена от www
до non www
или наоборот могут отличаться для каждого из поставщиков домена. Поскольку мой домен находится под GoDaddy, поэтому в настройке домена я установил его с помощью Subdomain Forwarding (301).
В результате указания домена в репозиторий Github он затем передаст все URL-адреса для ветвей master
и gh-pages
, похожих на те, которые перечислены ниже, в предпочтительный домен:
мастер
Создав файл 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
вам может потребоваться полностью обходить обработку Jekyll на страницах GitHub, создав файл с именем .nojekyll
в корневом репозитории ваших страниц.