cdn - 将AWS CloudFront CDN放在Squarespace网站前面需要哪些设置?

标签 cdn amazon-cloudfront squarespace

我很难让AWS CloudFront与SquareSpace一起使用。表单未提交且网站说网站过期的问题。要使CloudFront与Squarespace站点一起使用,需要进行哪些设置?

最佳答案

考虑到我刚刚进行了设置,这绝对是可行的。让我分享我在Cloudfront,Squarespace和Route53上使用的设置以使其正常运行。如果您想使用与AWS Route53不同的DNS提供,则应该能够调整这些设置。请记住,这不是电子商务网站,而是具有博客静态页面形式的标准网站。当出现其他问题时,您可能会修改这些说明。

云端(CDN)

为此,您需要为 Web 创建 Cloudfront发行版

原点设置

  • 原始域名应该设置为 ext-cust.squarespace.com 。这是Squarespace外部域名的入口。
  • 原始路径可以留为空白。
  • 原始ID 只是此发行版的唯一ID,如果您在发行版创建屏幕上,则应自动填充,如果以后要编辑“原始设置”,则应将其固定。
  • 不需要设置原始自定义标题

  • 默认缓存行为设置/行为
  • 路径模式应该保留在默认
  • 我已将查看器协议(protocol)策略设置为将HTTP重定向到HTTPS 。这决定了您的站点可以使用HTTP还是HTTPS之一或同时使用。我更喜欢安全地路由所有流量,因此我将所有HTTP流量重定向到HTTPS。请注意,您不能执行反向操作并将HTTPS重定向到HTTP,因为这会导致身份验证问题(您的浏览器不想公开您认为安全的连接)。
  • 允许的HTTP方法必须为 GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETE 。这是因为表单(以及其他诸如注释之类的东西)使用 POST HTTP方法来工作。
  • 缓存的HTTP方法我只剩下 GET,HEAD 了。这里不需要任何其他东西。
  • 转发 header 需要设置为所有白名单。我们前面提到的Squarespace的入口点需要知道您来自哪个域来为您的网站提供服务,因此 Host header 必须列入白名单,如果设置为All,则必须与其他所有内容一起使用。
  • 对象缓存最小TTL 最大TTL 默认TTL 都可以保留为默认值。
  • 转发Cookies Cookies是使表格正常工作所缺少的组件。您可以将其设置为所有,或白名单。 Squarespace将某些 session 变量用于验证,安全性和其他实用程序。我已将以下值添加到白名单Cookies 中: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证书并选择一个您已配置。这样可以确保浏览器将通过HTTPS的SSL识别为有效。如果您根本不使用HTTPS,则没有必要。
  • 以下所有设置都可以保留为默认设置,或选择以满足您自己的特定要求。

  • 路线53(DNS)

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

  • 方形空间

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

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

    笔记

    我无法确切地说出白名单Cookies 下设置的每个值是否都是必要的,但是这些取自使用Chrome浏览器检查器确定请求中 Cookie header 下存在哪些cookie。最初,我试图告诉Cloudfront将Cookie header 本身列入白名单,但不允许这样做(大概是因为它希望您使用特定于Cookie的白名单)。如果您的部署无法正常工作,请查看您的请求中是否还有更多的Cookie正在传输(在Cookie header 下,您要查找的值应类似于my_cookie=somevalue;other_cookie=othervalue -在我的示例中为my_cookieother_cookie是您要添加到其中的值)白名单)。

    可以使用相同的过程来完全转发可能需要通过转发头白名单的其他头。只需检查一下,看是否有需要检查的地方。

    请记住,如果您没有将 header 或cookie列入白名单,那么它就不会进入Squarespace。如果您不想打扰,或者一切都没用(对不起,我的语言),尽管可以对缓存性能产生不利影响,但您始终可以将其设置为允许所有 header /Cookie。因此,如果可以的话,请保守一点。

    希望这可以帮助!

    关于cdn - 将AWS CloudFront CDN放在Squarespace网站前面需要哪些设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346497/

    相关文章:

    python - Flask 为生产和开发中 URL 不同的资源创建 URL 的方法

    node.js - 寻找一个简单的设置来将 Cloudfront 与 Node.js Express 应用程序一起使用

    html - 如何在 Squarespace 中强制图像跨越 100% 宽度?

    asp.net - 在部署时将本地 (JQuery) 链接转换为 CDN 链接

    javascript - 在 dojo 1.10.3 的 Google CDN 上找不到 parser.js

    javascript - .min 或 src 为 "main"- node_module 的 package.json 中的文件

    amazon-web-services - CloudFront 上基于设备的重定向从 S3 源服务

    amazon-web-services - 将 CloudFront 与外部托管的 DNS 结合使用,指向 EC2 实例

    css - 如何使用 css 在 iframe 中缩放图像

    css - 修复变体选择包装宽度 (SqSp)