Jim*_*mmy 5 domain-name-system domain seo redirect amazon-web-services
我正在使用自定义域在亚马逊 S3 上托管静态 index.html。在我的域上一切正常:site.com。但是,当我访问www.site.com时出现错误。据我所知,我需要将 www URL 301 重定向到裸 URL。
似乎有几种方法可以做到这一点,但我对 DNS 的理解是有限的,而且听起来其中许多选项都是不可取的。
有两条 A 记录,一条带 www,一条不带。显然,这可能会导致 SEO 问题,因为谷歌会将其视为重复内容。
有一个重定向存储桶,所有这些都路由通过。这可能会导致 Cloudfront 出现问题。 /sf/ask/708105961/
使用 PTR 记录重定向 - 但显然这是不可取的。 如何在 Route53 中将 www 重定向到非 www?
由于我的名字是godaddy,使用godaddy重定向:https : //support.google.com/blogger/answer/58317?hl=en
使用免费服务,如 wwwizer http://wwwizer.com/naked-domain-redirect
使用亚马逊存储桶重定向。这给每个域需要两个存储桶带来了一个大问题,这意味着我只能拥有 50 个域而不是 100 个。这对我来说是个问题。 http://i.stack.imgur.com/lqict.png
我试图列出我知道的每个选项。请对域和 DNS 有更好理解的人可以帮助我决定哪条是最佳路径,考虑到性能、可靠性和 SEO。
选项 1 不适用于 S3 托管的网站,因为 S3 在Host:
传入 HTTP 请求的标头中看到的内容必须与存储桶的名称完全匹配,并且设置重复的 A 记录并不能解决您的问题。
出于同样的原因,选项 2 不起作用 - 请求永远不会到达包含重定向规则的存储桶,除非定向到存储桶的实际名称的请求。您链接到的答案只不过是执行选项 6 的“困难方法”,并且每个主机名需要一个存储桶。
选项 3 没有用,因为 PTR 记录不会导致浏览器重定向。PTR 记录通常用于反向 DNS,在此上下文中没有应用。
选项 4 GoDaddy 有名为“域转发”和“子域转发”的选项,但这意味着您必须让 GoDaddy 托管您的 DNS,而不仅仅是在那里注册您的域(这是两个不同的事情,通常但不一定,一起走)。如果这就是您现在所拥有的,您可以将“www”子域 (www.example.com)“转发”到顶点 (example.com),GoDaddy 通过为 www.example.com 创建 A 或 CNAME 记录来完成此操作它们指向自己的 Web 服务器,生成 HTTP 301 或 302 重定向到http://example.com。如果您的 DNS 由 GoDaddy 托管,而不是在 Route 53 上,那么这可能是最简单的选项,但如果您的 DNS 不是由 GoDaddy 托管,则此选项不可用。由于您使用域的顶端作为 S3 中的网站,我假设您的 DNS 由 Route 53 托管,这意味着这不起作用。
选项 5 似乎是一个坏主意,在方程式中引入了不必要的第三方,但更重要的是,它解决了错误的问题。他们不会将 www.example.com 重定向到 example.com,而是将 example.com 重定向到 www.example.com。
选项 6 是一个不错的选择,但存在您提到的缺点,即每个 AWS 账户可用的存储桶数量有限。
如果您有很多不同的域,则另一个选择是在 EC2 中分配弹性 IP 地址(这样您就有一个不会更改的静态端点 IP 地址),然后启动绑定到该 IP 地址的 Micro 实例,并在其上安装HAProxy。HAProxy 实际上旨在前端实际的 Web 服务器并对外部世界的流量进行负载平衡,但它也具有生成重定向的功能。配置并不是非常复杂,而且 HAProxy 对 CPU 的效率非常高,因此我希望您可以从 Micro 中完成大量工作,但如果流量需要的话,总是可以将其扩展到更大的实例。
您可以在端口 80 上配置前端侦听器:
frontend main
bind *:80
Run Code Online (Sandbox Code Playgroud)
然后为每个域创建一个访问控制列表 (acl),以监视“主机”http 标头中包含该主机名的请求...
acl www.example.com hdr(host) -i www.example.com
Run Code Online (Sandbox Code Playgroud)
...然后配置重定向以生成指向所需主机名的 301。
redirect prefix http://example.com if www.example.com
Run Code Online (Sandbox Code Playgroud)
在 DNS 中,您可以使用指向此 Micro 实例的公共弹性 IP 地址的 A 记录配置 www.example.com。
使用此配置,路径将被保留,因此发送到任何路径(如http://www.example.com/foo/bar)的请求将被 HTTP 301 重定向到另一个路径上完全相同的路径域,例如http://example.com/foo/bar。
您可以使用在机器上运行的实际 Web 服务器(例如 Nginx 或 Apache)执行类似的操作,但 HAProxy 是一个非常重型但轻量级的工具,似乎非常适合此类任务,并生成像这样的重定向这是我在运营中使用它的目的之一。
归档时间: |
|
查看次数: |
2122 次 |
最近记录: |