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

Joe*_*rth 6 cdn squarespace amazon-cloudfront

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

Psi*_*loc 14

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

Cloudfront(CDN)


要使其工作,您需要为Web创建Cloudfront Distribution.

原点设置

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

默认缓存行为设置/行为

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

  • Forward Query Strings设置为True,因为一些Squarespace API调用使用查询字符串,因此必须传递这些字符串.

  • 平滑流,限制查看器访问压缩对象自动都可以保留其默认值,或者如果您知道需要以不同方式设置它们,则根据需要选择.

分配设置/常规

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

Route 53(DNS)


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

Squarespace


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

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

笔记


我无法确切地说明在白名单Cookie下设置的每个值是否都是必要的,但这些值来自使用Chrome Inspector来确定请求中Cookie标头下的Cookie.最初我试图告诉Cloudfront将Cookie标头本身列入白名单,但它不允许这样做(可能是因为它希望您使用特定于Cookie的白名单).如果您的部署不工作,看看是否有你的请求被发送多个cookie(Cookie的标题下,你要寻找的值应该看起来像my_cookie=somevalue;other_cookie=othervalue- my_cookie并且other_cookie在我的例子是你添加到白名单中的).

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

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

希望这可以帮助!