将 AWS CloudFront CDN 放在方形空间网站前面需要哪些设置?
What settings are required to put AWS CloudFront CDN in front of a squarespace website?
我在让 AWS CloudFront 与 SquareSpace 一起工作时遇到了问题。表单未提交和网站说网站已过期的问题。让 CloudFront 使用 Squarespace 站点需要哪些设置?
以下是让 CloudFront 与 Squarespace 一起工作的设置!
行为:
- 允许的 HTTP 方法确保您 select:GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE。否则表格将无法工作:
- 转发Headers:Select白名单并选择'Host'。否则 squarespace 将不知道他们需要加载哪个网站并且您会收到消息 'Website has expired' 或类似的消息。
起源:
源域名设置为:ext-cust.squarespace.com
源站协议策略 Select HTTPS 这样 CDN 和源站之间的流量也是安全的
一般
备用域名 (CNAME) 将您的 www 和 none www 地址放在这里,让 Squarespace 决定是否将 www 指向根目录或 vice-versa(例如 example.com www.example.com)
您现在可以在 CloudFront
上配置 SSL
HTTPS 您现在可以在此处而不是在 Squarespace
中使用证书为您的站点强制执行 HTTPS
我不确定的设置:
- 转发查询字符串:不推荐用于缓存,但我认为这可能会破坏...
53 号公路
为 www 和 root 创建 A 记录(例如 example.com www.example.com)并设置为您的 CloudFront 分配的别名
这绝对是可行的,考虑到我刚刚设置它。让我分享一下我在 Cloudfront、Squarespace 和 Route53 上使用的设置,以使其正常工作。如果您想使用与 AWS Route53 不同的 DNS 服务,您应该能够调整这些设置。请记住,这不是一个 e-commerce 站点,而是一个带有 博客 、 静态页面 和 [=56] 的标准站点=]表格。您可能会根据出现的其他问题调整这些说明 as/if。
云端(CDN)
要完成这项工作,您需要为 Web 创建一个 Cloudfront Distribution。
原点设置
- 源域名应设置为ext-cust.squarespace.com。这是Squarespace对外域名的入口。
- 源路径可以留空。
- Origin ID 只是此发行版的唯一 ID,如果您在发行版创建屏幕上,应该 auto-populate,或者如果您正在编辑,则应该固定稍后设置 Origin。
- Origin Custom Headers不需要设置
默认缓存行为设置/行为
- 路径模式 应保留为默认值。
- 我已将 查看器协议策略 设置为 将 HTTP 重定向到 HTTPS。这决定了您的站点是否可以使用 HTTP 或 HTTPS 之一或两者。我更喜欢安全地路由所有流量,因此我将所有 HTTP 流量重定向到 HTTPS。请注意,您不能执行反向操作并将 HTTPS 重定向到 HTTP,因为这会导致身份验证问题(您的浏览器不想公开您认为 是安全连接的内容)。
- 允许的 HTTP 方法 需要是 GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE。这是因为表单(可能还有评论等其他内容)使用 POST HTTP 方法来工作。
- 缓存的 HTTP 方法 我只剩下 GET,HEAD。这里不需要其他任何东西。
- 转发Headers需要设置为全部或白名单。我们之前提到的 Squarespace 的入口点需要知道您来自哪个域来为您的网站提供服务,因此 Host header 必须列入白名单,或者允许与其他所有内容一起使用,如果设置为全部。
- Object 缓存、最小 TTL、最大 TTL 和 默认TTL都可以保持默认。
转发 Cookie cookie 是使表单正常工作所缺少的组件。您可以将其设置为 All,或 Whitelist。 Squarespace 将某些 session 变量用于验证、安全性和其他实用程序。我已将以下值添加到 Whitelist Cookies:JSESSIONID, SS_MID, crumb, ss_cid, ss_cpvisit, ss_cvisit, test
。确保将每个值放在单独的行中,不带逗号。
Forward Query Strings 设置为 True,因为某些 Squarespace API 调用使用查询字符串所以这些必须传递。
- 流畅流式传输、限制查看者访问和自动压缩Objects 都可以保留其默认值,或者如果您知道需要对它们进行不同的设置,则可以根据需要进行选择。
分发设置/常规
- 价格Class和AWS WAF Web ACL可以单独留下。
- 备用域名 应列出您的域,以及附加了 www 子域的域,例如
example.com, www.example.com
.
- 对于 SSL 证书,请按照教程 here 将您的证书上传到 IAM(如果您尚未上传),然后刷新您的证书(有一个控件在下拉菜单旁边),select 自定义 SSL 证书 和 select 您配置的证书。这可确保浏览器将您的 SSL over HTTPS 识别为有效。如果您根本不使用 HTTPS,则没有必要这样做。
- 以下所有设置都可以保留默认设置,或选择以满足您自己的特定要求。
53 号公路 (DNS)
- 您需要为您的域设置一个托管区域(这特定于 Route 53 设置)。
- 您需要设置一条 A 记录以指向您的 Cloudfront 分配。
- 您应该为 www 子域名设置一个 CNAME 记录指向您的 Cloudfront 分配,即使您不打算使用它(稍后我们将通过重定向 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 传播需要时间,因此如果您无法访问该站点,请给它一些时间(最多几个小时)来传播。
备注
我不能确切地说 Whitelist Cookies 下设置的每个值是否都是必需的,但这些是通过使用 Chrome Inspector 来获取的确定请求中 Cookie header 下存在哪些 cookie。最初我试图告诉 Cloudfront 将 Cookie header 本身列入白名单,但它不允许这样做(大概是因为它希望您使用 cookie-specific 白名单)。如果您的部署不起作用,请查看您的请求中是否传输了更多 cookie(在 Cookie header 下,您要查找的值应该类似于 my_cookie=somevalue;other_cookie=othervalue
—my_cookie
和other_cookie
在我的示例中是您要添加到白名单的内容)。
可以使用相同的过程完全转发其他 header,这可能需要通过 转发 Headers 白名单。只需检查并查看是否有看起来可能需要通过的东西。
请记住,如果您没有将 header 或 cookie 列入白名单,它就不会进入 Squarespace。如果你不想打扰,或者一切都被影响了(请原谅我的语言),你总是可以设置为允许所有 headers/cookies,尽管这 会对缓存性能产生不利影响 。因此,如果可以的话,请保守一些。
希望对您有所帮助!
我在让 AWS CloudFront 与 SquareSpace 一起工作时遇到了问题。表单未提交和网站说网站已过期的问题。让 CloudFront 使用 Squarespace 站点需要哪些设置?
以下是让 CloudFront 与 Squarespace 一起工作的设置!
行为:
- 允许的 HTTP 方法确保您 select:GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE。否则表格将无法工作:
- 转发Headers:Select白名单并选择'Host'。否则 squarespace 将不知道他们需要加载哪个网站并且您会收到消息 'Website has expired' 或类似的消息。
起源:
源域名设置为:ext-cust.squarespace.com
源站协议策略 Select HTTPS 这样 CDN 和源站之间的流量也是安全的
一般
备用域名 (CNAME) 将您的 www 和 none www 地址放在这里,让 Squarespace 决定是否将 www 指向根目录或 vice-versa(例如 example.com www.example.com) 您现在可以在 CloudFront
上配置 SSL
HTTPS 您现在可以在此处而不是在 Squarespace
中使用证书为您的站点强制执行 HTTPS
我不确定的设置:
- 转发查询字符串:不推荐用于缓存,但我认为这可能会破坏...
53 号公路
为 www 和 root 创建 A 记录(例如 example.com www.example.com)并设置为您的 CloudFront 分配的别名
这绝对是可行的,考虑到我刚刚设置它。让我分享一下我在 Cloudfront、Squarespace 和 Route53 上使用的设置,以使其正常工作。如果您想使用与 AWS Route53 不同的 DNS 服务,您应该能够调整这些设置。请记住,这不是一个 e-commerce 站点,而是一个带有 博客 、 静态页面 和 [=56] 的标准站点=]表格。您可能会根据出现的其他问题调整这些说明 as/if。
云端(CDN)
要完成这项工作,您需要为 Web 创建一个 Cloudfront Distribution。
原点设置
- 源域名应设置为ext-cust.squarespace.com。这是Squarespace对外域名的入口。
- 源路径可以留空。
- Origin ID 只是此发行版的唯一 ID,如果您在发行版创建屏幕上,应该 auto-populate,或者如果您正在编辑,则应该固定稍后设置 Origin。
- Origin Custom Headers不需要设置
默认缓存行为设置/行为
- 路径模式 应保留为默认值。
- 我已将 查看器协议策略 设置为 将 HTTP 重定向到 HTTPS。这决定了您的站点是否可以使用 HTTP 或 HTTPS 之一或两者。我更喜欢安全地路由所有流量,因此我将所有 HTTP 流量重定向到 HTTPS。请注意,您不能执行反向操作并将 HTTPS 重定向到 HTTP,因为这会导致身份验证问题(您的浏览器不想公开您认为 是安全连接的内容)。
- 允许的 HTTP 方法 需要是 GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE。这是因为表单(可能还有评论等其他内容)使用 POST HTTP 方法来工作。
- 缓存的 HTTP 方法 我只剩下 GET,HEAD。这里不需要其他任何东西。
- 转发Headers需要设置为全部或白名单。我们之前提到的 Squarespace 的入口点需要知道您来自哪个域来为您的网站提供服务,因此 Host header 必须列入白名单,或者允许与其他所有内容一起使用,如果设置为全部。
- Object 缓存、最小 TTL、最大 TTL 和 默认TTL都可以保持默认。
转发 Cookie cookie 是使表单正常工作所缺少的组件。您可以将其设置为 All,或 Whitelist。 Squarespace 将某些 session 变量用于验证、安全性和其他实用程序。我已将以下值添加到 Whitelist Cookies:
JSESSIONID, SS_MID, crumb, ss_cid, ss_cpvisit, ss_cvisit, test
。确保将每个值放在单独的行中,不带逗号。Forward Query Strings 设置为 True,因为某些 Squarespace API 调用使用查询字符串所以这些必须传递。
- 流畅流式传输、限制查看者访问和自动压缩Objects 都可以保留其默认值,或者如果您知道需要对它们进行不同的设置,则可以根据需要进行选择。
分发设置/常规
- 价格Class和AWS WAF Web ACL可以单独留下。
- 备用域名 应列出您的域,以及附加了 www 子域的域,例如
example.com, www.example.com
. - 对于 SSL 证书,请按照教程 here 将您的证书上传到 IAM(如果您尚未上传),然后刷新您的证书(有一个控件在下拉菜单旁边),select 自定义 SSL 证书 和 select 您配置的证书。这可确保浏览器将您的 SSL over HTTPS 识别为有效。如果您根本不使用 HTTPS,则没有必要这样做。
- 以下所有设置都可以保留默认设置,或选择以满足您自己的特定要求。
53 号公路 (DNS)
- 您需要为您的域设置一个托管区域(这特定于 Route 53 设置)。
- 您需要设置一条 A 记录以指向您的 Cloudfront 分配。
- 您应该为 www 子域名设置一个 CNAME 记录指向您的 Cloudfront 分配,即使您不打算使用它(稍后我们将通过重定向 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 传播需要时间,因此如果您无法访问该站点,请给它一些时间(最多几个小时)来传播。
备注
我不能确切地说 Whitelist Cookies 下设置的每个值是否都是必需的,但这些是通过使用 Chrome Inspector 来获取的确定请求中 Cookie header 下存在哪些 cookie。最初我试图告诉 Cloudfront 将 Cookie header 本身列入白名单,但它不允许这样做(大概是因为它希望您使用 cookie-specific 白名单)。如果您的部署不起作用,请查看您的请求中是否传输了更多 cookie(在 Cookie header 下,您要查找的值应该类似于 my_cookie=somevalue;other_cookie=othervalue
—my_cookie
和other_cookie
在我的示例中是您要添加到白名单的内容)。
可以使用相同的过程完全转发其他 header,这可能需要通过 转发 Headers 白名单。只需检查并查看是否有看起来可能需要通过的东西。
请记住,如果您没有将 header 或 cookie 列入白名单,它就不会进入 Squarespace。如果你不想打扰,或者一切都被影响了(请原谅我的语言),你总是可以设置为允许所有 headers/cookies,尽管这 会对缓存性能产生不利影响 。因此,如果可以的话,请保守一些。
希望对您有所帮助!