将AWS CloudFront CDN置于方形空间网站前需要哪些设置?

时间:2016-04-01 01:22:12

标签: cdn amazon-cloudfront squarespace

我无法让AWS CloudFront与SquareSpace合作。表单未提交的问题以及网站说网站已过期。使CloudFront与Squarespace站点一起工作所需的设置是什么?

2 个答案:

答案 0 :(得分:13)

这是绝对可行的,考虑到我只是设置了它。让我分享我在Cloudfront,Squarespace和Route53上使用的设置,使其工作。如果您想使用与AWS Route53不同的DNS提供,您应该能够调整这些设置。请注意,这不是电子商务网站,而是具有博客静态网页表单的标准网站。如果出现这些说明,您可能会将这些说明用于其他问题。

Cloudfront(CDN)

要实现这一目标,您需要为 Web 创建 Cloudfront Distribution

原点设置

  • 原始域名应设置为 ext-cust.squarespace.com 。这是Squarespace的外部域名入口点。
  • 原始路径可以留空。
  • 来源ID 只是此分配的唯一ID,如果您在分发创建屏幕上,则应自动填充,如果您稍后再编辑原始设置,则应修复
  • 原始自定义标题不需要设置。

默认缓存行为设置/行为

  • 路径模式应保留在默认
  • 我将查看者协议政策设置为将HTTP重定向到HTTPS 。这决定了您的网站是否可以使用HTTP或HTTPS中的一个或两个。我更喜欢安全地路由所有流量,因此我将所有HTTP流量重定向到HTTPS。请注意,您无法执行反向操作并将HTTPS重定向到HTTP,因为这会导致身份验证问题(您的浏览器不希望公开您认为是安全连接的内容)。
  • 允许的HTTP方法需要 GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETE 。这是因为表单(以及评论等其他内容可能)使用 POST HTTP方法来工作。
  • 缓存的HTTP方法我只剩下 GET,HEAD 。这里不需要任何其他东西。
  • 转发标题需要设置为全部白名单。我们前面提到的Squarespace的入口点需要知道您来自哪个域来为您的网站提供服务,因此主机标头必须列入白名单,或者如果设置则允许其他所有内容全部。
  • 对象缓存最小TTL 最大TTL 默认TTL 都可以保留默认值
  • 转发Cookie Cookie是使表单正常工作的缺失组件。您可以将其设置为全部白名单。 Squarespace使用某些会话变量来验证,安全性和其他实用程序。我已将以下值添加到白名单Cookie JSESSIONID, SS_MID, crumb, ss_cid, ss_cpvisit, ss_cvisit, test。确保将每个值放在一个单独的行上,不带逗号。

  • 转发查询字符串设置为 True ,因为一些Squarespace API调用使用查询字符串,因此必须传递这些字符串。

  • 平滑流式传输限制查看者访问权限自动压缩对象都可以保留默认值,或者根据需要选择知道你需要以不同的方式设置它们。

分发设置/常规

  • 价格等级 AWS WAF Web ACL 可以保持不变。
  • 替代域名应列出您的域名,以及附加了www子域名的域名,例如: example.com, www.example.com
  • 对于 SSL证书,请按照教程here将证书上传到IAM(如果您还没有),然后刷新您的证书(旁边有一个控件)下拉列表),选择自定义SSL证书,然后选择您已配置的那个。这可确保浏览器将您的SSL通过HTTPS识别为有效。如果您根本不使用HTTPS,则无需这样做。
  • 以下所有设置均可保留为默认设置,或者选择符合您自己的特定要求。

Route 53(DNS)

  • 您需要为您的域设置托管区(这特定于Route 53设置)。
  • 您需要设置 A 记录以指向您的Cloudfront分发。
  • 您应该为指向您的Cloudfront发行版的 www 子域名设置 CNAME 记录,即使您不打算使用它(稍后我们&# 39; ll通过设置Squarespace来仅通过重定向www子域来使用根域)

Squarespace

在Squarespace网站上,您只需转到Settings->Domains->Connect a Third-Party Domain即可。在那里,输入您的域名并继续。在域名设置下,如果您希望从www.example.com访问您网站的用户重定向到根example.com,则可以取消选中使用WWW前缀 。我更喜欢这个,但它取决于你。在 DNS设置下,您需要的唯一值是指向 verify.squarespace.com 的CNAME。将此CNAME记录添加到Route 53或其他DNS提供商的DNS设置中。由于我们使用自定义的部署方式,因此无法说您的连接已完全完成,但这不重要。

您的网站现在应该通过指向Squarespace部署的Cloudfront运行!请注意,DNS传播需要时间,因此如果您无法访问该网站,请给它一些时间(最多几个小时)来传播。

注释

我无法确切说明是否有必要在白名单Cookie 下设置的每个值,但这些值来自使用Chrome Inspector确定哪些Cookie存在于请求中的 Cookie 标头。最初,我试图告诉Cloudfront将Cookie标头本身列入白名单,但它不允许这样做(可能是因为它希望您使用特定于Cookie的白名单)。如果您的部署无效,请查看您的请求中是否传输了更多Cookie(在Cookie标题下,您要查找的值应该是my_cookie=somevalue;other_cookie=othervalue - my_cookie和{{在我的示例中,1}}是您添加到白名单中的内容。

可以使用相同的过程通过转发标题白名单完全转发其他标题。只需检查并查看是否有可能需要经历的事情。

请注意,如果您未将标题或Cookie列入白名单,则无法访问Squarespace。如果你不想打扰,或者所有事情都被贬低(请原谅我的语言),你总是可以设置允许所有标题/ cookie,尽管这个会对缓存性能产生负面影响。如果可以,请保守。

希望这有帮助!

答案 1 :(得分:1)

以下是让CloudFront使用Squarespace的设置!

行为:

  • 允许的HTTP方法确保选择:GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETE。否则表格不起作用:
  • 转发标题:选择白名单并选择“主持人”。否则,squarespace将不知道他们需要加载哪个网站,并且您收到消息'网站已过期'或类似的。

起源:

  • 来源域名设置为:ext-cust.squarespace.com

  • 原始协议政策选择HTTPS以便CDN和来源之间的流量也是安全的

一般

  • 替代域名(CNAME)将此www和无www地址放在此处,让Squarespace决定是否将www指向root或反之亦然(.eg example.com www example.com)的情况 您现在可以在CloudFront上配置SSL

  • HTTPS 您现在可以在此处使用您网站的证书强制执行HTTPS,而不是使用Squarespace

<小时/>

设置我不确定是否仍然:

  • 转发查询字符串:建议不要用于缓存原因,但我认为这可能会破坏事情......

<小时/>

Route53

为www和root创建记录(例如example.com www.example.com)并设置为CloudFront分配的别名