问题描述
我有一个非常的简单网站,希望在GCP存储桶中托管。我希望它仅使用http(而不是https),并且不想添加负载均衡器,并且静态GCP网站的大多数示例都显示了添加负载均衡器。
在没有负载均衡器的情况下,我能找到的唯一示例显示了将CNAME记录指向c.storage.googleapis.com,该记录将连接到名为www.mysite.com的存储桶。
到目前为止,除了 以外,它还可以正常工作,除了不包含www子域(mysite.com)的情况下,该域不包括对该域的访问。而且,我无法附加仅将mysite.com指向www.mysite.com的ALIAS记录,因为Google Cloud DNS没有ALIAS记录。
解决方法
根据设计,您不能在“根”域级别创建CNAME记录。它必须指向一个子域。除非您将其指向其他域。
通过使用CNAME
记录(例如指向www.mysite.com
的{{1}}来为设计存储桶提供服务。
因此,您不得不使用c.storage.googleapis.com
前缀或其他子域。
有一个mention in the documentation of a possibility to serve bucket using A
record。
您可以在DNS记录中使用存储桶名称作为
www
或CNAME
重定向的一部分,这使我有了一个主意。
但这是一个“易碎且硬接线”的解决方案
您需要使用网站副本创建一个名为“ mysite.com”的存储桶。
然后,您进入托管区域并编辑A
记录,以指向A
的IP,即c.storage.googleapis.com
(至少在我写此代码时)。接下来,您将CNAME记录74.125.143.128
更改为指向www.mysite.com
,以将mysite.com
重定向到非www。
然后等到更改传播并设置好为止:)我对其进行了测试,并且它可以工作。我不想等待,所以我将所有涉及的记录的TTL更改为1分钟。
那你会问自己为什么我写的是“易碎而硬连线”的书?除非有人更改www
的IP,否则它将一直有效。
也许还有其他方法可以将DNS记录设置为指向c.storage.googleapis.com而不是IP,但是我无法弄清楚。
如果您不更改CNAME记录并将其指向
c.storage.googleapis.com
,然后您就必须访问网站(是否由您决定)。一个可以使用c.storage.googleapis.com
-另一个可以不使用。