AWS Route 53 域指向 Github 页面
Posted
技术标签:
【中文标题】AWS Route 53 域指向 Github 页面【英文标题】:AWS Route 53 Domain Point To Github Pages 【发布时间】:2021-12-31 01:55:10 【问题描述】:我是使用 AWS 和 route 53 的新手,因此感谢您提供任何帮助。
我在 GitHub 上创建了一个组织,然后为静态站点创建了一个简单的存储库,以便与 Github 页面一起显示。这按预期工作,我可以在 Github 生成的 URL 上看到静态站点(类似于:https://<githubOrgName>.github.io/<repoName>/
)
我从 AWS 获得了一个域,现在我正在尝试设置它,以便***域(例如“my-domain.com”)指向 Github 页面站点。
我按照以下位置的说明进行操作:https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages ...但它似乎不起作用。
我正在尝试使顶点域指向存储库 Github 页面。类似:
https://my-domain.com -> https://<githubOrgName>.github.io/<repoName>/
...但这仅在我转到根域(“my-domain.com”)时显示空白屏幕。我也试过去https://my-domain.com/<repoName>/
...但这向我展示了一个Github 404页面(所以它似乎正确地将某些东西转发到Github):
我的 AWS 路由 53 配置类似于以下内容(我已尝试删除敏感细节):
谁能向我解释我做错了什么?我是使用域的新手,因此不胜感激。
【问题讨论】:
【参考方案1】:单独使用 Route53 对你没有帮助,因为你的目标 URL 包含一个 URL 路径,即/<repoName>/
。
DNS 是一个名称解析系统,对 HTTP 一无所知
此外,源服务器 (github.io
) 可能正在运行可能正在解析请求标头的反向代理,其中包括 Host
标头。您的浏览器会自动将此标头设置为您提供给它的 url。最终,您向其发送了错误的标头(即https://my-domain.com/),Github 无法处理。您可以将此标头(例如通过curl
)显式设置为 Github 所期望的,但我相信这不是您和您的用户想要的。
相反,您可以尝试在 Lambda@Edge
(由 AWS CloudFront 提供)的帮助下使用第 7 层重定向 (301/302)。我使用无服务器框架创建了一个简单的solution,它执行以下重定向:
https://maslick.tech -> https://github.com/maslick
https://maslick.tech/cv -> https://www.linkedin.com/in/maslick/
https://maslick.tech/qa -> https://***.com/users/2996867/maslick
https://maslick.tech/ig -> https://www.instagram.com/maslick/
但是你可以根据自己的需要通过调整handler.js
来自定义。您可能还需要在 us-east-1
区域中使用 AWS Certificate Manager 创建一个免费的 TLS 证书,并将其附加到您的 CloudFront 分配中。但这是可选的。
Lambda@Edge
将提供低延迟,因为您的重定向将从 CloudFront 的全球边缘站点提供。
【讨论】:
以上是关于AWS Route 53 域指向 Github 页面的主要内容,如果未能解决你的问题,请参考以下文章
Route53 中的域将根指向外部主机,在 AWS 中保留子域