如何将DigitalOcean的DNS用于自定义GitHubURL
介绍
本教程展示了如何从您自己的自定义域设置 DNS 重定向(例如 http://githubtest.teamerlich.org/)指向你的 GitHub 托管的静态网站(例如 http://agordon.github.io/custom_dns_test) 使用 DigitalOcean 的 DNS 控制面板。
Github Pages 使托管在 GitHub 上的每个项目都可以拥有该程序的专用静态网站。 建立一个静态网站在他们的网站上有详细的解释(甚至包括一个自动模板生成器来帮助建立一个新网站)。
此类网站的默认 URL 基于用户名和项目名。 例如,如果 GitHub 用户名是 agordon
,项目名称是 custom_dns_test
,则 Github 存储库 URL 将是 https://github.com/agordon/custom_dns_test 和GitHub-Pages 静态网站将是 http://agordon.github.io/custom_dns_test/。
按照本教程中的说明,您将设置一个自定义域名(例如 http://githubtest.teamerlich.org/) 这将是 http://agordon.github.io/custom_dns_test/ 的自动别名 - 即访问自定义的用户URL 将看到 http://agordon.github.io/custom_dns_test/ 的内容(存储在 GitHub 的服务器上并由其提供服务),但 URL 将是您自定义的。
本文遵循 GitHub 的 Custom Domain with Github Pages 教程,适用于 DigitanOcean 的 DNS 控制面板。
先决条件
本教程假设您具备以下条件:
注册的域名(例如
teamerlich.org
)在域名注册商处(例如 godaddy.com )。DigitalOcean 名称服务器中的正确 DNS 配置。
GitHub 上的用户。
示例: 如果你的 GitHub 用户是
agordon
你的 Github 页面将是 https://github.com/agordon/。您拥有(并且可以修改)的 Github 项目。
Example:如果你的GitHub项目是
custom_dns_test
,那么你项目的GitHub仓库就是https://github.com/agordon/custom_dns_test。在所述项目中,使用名为
gh-pages
的分支的 GitHub-Pages 设置。 如果您还没有创建 GitHub pages brunch,请按照 https://pages.github.com/ 上的说明进行操作(其中还包括带有漂亮模板的自动网站生成器)。
Example:如果你的GitHub项目是custom_dns_test
,那么你项目的GitHub Pages分支仓库就是https://github.com/agordon/custom_dns_test/tree/gh-pages[X169X ]。
第 1 步 - 确定子域名。
子域名应该是字母数字。 您以后可以随时更改域名,方法是使用新名称重复步骤 2 和 3。
第 2 步 - 将“CNAME”文件添加到您的 GitHub 项目
在您的 GitHub 项目的 gh-pages
分支中,创建(或更新)一个名为 CNAME
的文件。 该文件应包含带有完整域名的单行(例如 githubtest.teamerlich.org
)。 该名称必须与您将在步骤 3 中设置的域名相匹配。
在本地工作站上使用以下命令添加 CNAME
文件。 将示例替换为您自己的示例:
cd [PROJECT-DIRECTORY] git pull origin git checkout gh-pages echo "githubtest.teamerlich.org" > CNAME git add CNAME git commit -m "Added CNAME for GitHub Pages" git push
最终结果应该类似于以下项目(注意 CNAME
文件):https://github.com/agordon/custom_dns_test/tree/gh-pages。
将新的 CNAME
文件上传到 github 后,最多可能需要十分钟才能更新 GitHub 服务器。
第 3 步 - 在 DigitalOcean 的 DNS 控制面板中添加 DNS 记录
在您的 DigitalOcean 控制面板中,选择 Networking,然后单击您的域。 我们需要添加一条如下所示的新记录:
填写以下项目:
- 选择 CNAME 作为新的 DNS 记录
- 输入 HOSTNAME( 不带点 )。 该名称必须与步骤 2 中 GitHub 存储库中的
CNAME
文件的内容相匹配 - 在 IS AN ALIAS OF 字段中输入您的 GitHub 页面用户名的域(例如 如果您的 GitHub 用户是
agordon
,那么您的 GitHub-Pages 服务器将是agordon.github.io
)。 NOTE:“io”后面的句号是必需的 - 点击创建记录添加新记录
第 4 步 - 等待 DigitalOcean 的服务器更新
在 DigitalOcean 的 DNS 中更新 DNS 信息可能需要几分钟。
区域信息更新后,仍可能需要几个小时才能在其他 DNS 服务器中更新更改(例如 您的 ISP 的 DNS 服务器)。
示例摘要
- GitHub项目页面:https://github.com/agordon/custom_dns_test
- 具有基于 github 的 URL 的 GitHub 页面:http://agordon.github.io/custom_dns_test/
- 与上面相同的内容,自定义 URL http://githubtest.teamerlich.org/
- GitHub项目的
gh-pages
分支:https://github.com/agordon/custom_dns_test/tree/gh-pages CNAME
包含自定义 URL 的文件:https://github.com/agordon/custom_dns_test/blob/gh-pages/CNAME
更多的信息
- GitHub 页面 - https://pages.github.com/
- GitHub 页面自定义 DNS - https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages
- DigitalOcean’s DNS basics - how-to-set-up-a-host-name-with-digitalocean
- DigitalOcean’s DNS subdomains - how-to-set-up-and-test-dns-subdomains-with-digitalocean-s-dns-panel