管理您的 CIS 部署,以获得最佳可靠性
要使 IBM Cloud® Internet Services 部署达到最佳可靠性,可以设置有用的 DNS 配置和全局负载平衡器。 为获取额外的可靠性,可以使用“页面规则”来确保将 Web 内容发送给客户,即使源服务器或高速缓存有问题也可发送。 本文档提供了有关确保 CIS 部署最佳可靠性的一些最佳实践的详细信息。
我们通常建议的最佳实践如下:
- 设置 DNS 以利用 CIS 代理服务器和其他功能。
- 使用一个或多个全局负载平衡器,均匀分配网站流量。
- 设置适当的页面规则,以管理缓存和其他选项。
其中每一项都提供了特定功能,可用于创建更可靠的 CIS 部署。
请注意,CIS 界面会组织为三个部分:安全性、可靠性和性能。
设置 DNS
要开始设置 DNS 配置,请从导航菜单中选择 DNS。
有关设置和管理您的域名系统以确保可靠性的信息,请参阅 为 CIS 设置域名系统。
设置全局负载均衡器
要开始设置全局负载均衡器,请从导航菜单中选择全局负载均衡器。
有关设置和管理全局负载均衡器的信息,请参阅 全局负载均衡器概念。
使用“页面规则”提高可靠性
以下列表显示了一些建议的页面规则设置,可为您的网站提供最大的可靠性。
- 源高速缓存控制
- 转发 URL
提供旧内容
您可以使用“提供过期内容”设置,在服务器宕机时保持有限版本的网站在线。
使用“提供过期内容”功能,当服务器宕机时,CIS 会从缓存中提供页面,因此访问者仍能看到他们试图访问的部分页面。 访问者将在页面顶部看到一条消息,告知他们处于脱机浏览方式。 “提供旧内容”返回 HTTP 状态码 503,但是,很多其他 Web 应用程序也使用 503。 当您的服务器恢复在线时,CIS 会将用户无缝恢复到正常浏览状态。
如果 CIS 在其高速缓存中没有所请求的页面,那么访问者会看到错误页面,告知其所请求的 Web 站点页面处于脱机状态。
设置服务过期内容
要启用 服务过期内容,请执行以下步骤。
- 使用导航菜单转到 Performance > Caching。
- 切换 Serve Stale Content。
提供陈旧内容的限制
-
“过时内容服务” 与互联网档案馆集成。CIS 爬取过去 5 小时内状态为
200
HTTP 的最受欢迎 URL。 这意味着,当您的源服务器宕机时,站点上只有某些页面可供查看。 -
最近添加的网站没有大量的网站缓存。 这意味着,如果您几天前才添加了网站,提供陈旧内容可能不起作用。
-
服务器宕机时,CIS 不显示私有内容,也无法处理表单提交 (POST)。 将向访问者显示
error on checkout
页面或items require a login to view
。 -
要触发提供旧内容,Web 服务器必须返回标准的 HTTP 错误代码 502 或 504 超时。 当 CIS 遇到以下问题时,“提供过期内容”也会起作用:与您的来源联系出现问题(错误 521 和 523)、超时(522 和 524)、SSL 错误(525 和 526)或未知错误(520)。 对于其他 HTTP 响应代码(如 404、500 和 503)、数据库连接错误、内部服务器错误或服务器应答为空的情况,不会触发提供旧内容。
-
如果启用了“高速缓存所有内容”页面规则,而“边缘高速缓存到期 TTL”低于高速缓存频率,那么提供旧内容不起作用。这是因为“边缘高速缓存到期 TTL”导致在相应时间间隔中清除提供旧内容高速缓存。
源高速缓存控制
您可以使用源高速缓存控制页面规则设置,确定从源高速缓存的内容以及更新内容的频率,这会影响可靠性和性能。 缺省情况下,如果未更改任何设置,并且未从源服务器发送任何阻止高速缓存的头,那么 CIS 会使用特定扩展名来高速缓存所有静态内容。 这些类型的内容包括图像、CSS 和 JavaScript。 此高速缓存主要用于提高性能。
要设置起源缓存控制,可使用页面规则打开特定的标题,针对内容中的每个资源提供所需的行为。 要了解如何使用源高速缓存控制,需要有“页面规则”和 CIS 总体高速缓存行为的更概括性的一些说明来提供上下文,接下来的几个部分中涵盖了这些内容。 通常,可以使用三种方法来控制高速缓存,而源高速缓存控制是第二种方法。
设置源高速缓存控制会调用高速缓存规则,这些规则旨在严格遵守因特网最佳实践和 RFC,主要是在重新验证方面。 例如,max-age=0
时的 CIS 缺省行为是根本不会进行高速缓存,而源高速缓存控制设置会高速缓存,但始终会重新验证。
设置起源缓存控制
请按照以下步骤启用“源缓存控制”。
- 使用导航菜单选择性能下的页面规则。
- 使用引用域的 URL 模式创建页面规则。
- 添加源高速缓存控制设置,状态为开启。
- 选择供应资源。
页面规则优先顺序
总体而言,这些特定页面规则优先于缓存。
-
如果页面规则的缓存级别设置为
Bypass
,则与该页面规则匹配的资源不会被缓存。CIS 仍将充当代理,我们的其他性能功能也将保持激活状态。 但是,将直接从源服务器访存内容,而不是从高速缓存提供。 -
如果页面规则将高速缓存级别设置为
Cache everything
,那么会高速缓存与该页面规则匹配的资源。 使用此页面规则设置是告诉 CIS 缓存 CIS 认为静态资源(包括 HTML)之外的资源的唯一方法。
如果未设置页面规则,CIS 将使用 Standard
缓存模式,该模式基于资源的扩展名。CIS 仅缓存静态资源。
源 cache-control 头
改变 CIS 缓存内容的第二种方法是通过从原点发送的缓存头。CIS 尊重这些设置,但您可以通过指定 Edge Cache TTL 页面规则设置来覆盖这些设置。 以下是 CIS 在决定从您的源缓存哪些资源时会考虑的标头:
-
如果 Cache-Control 标头设置为
private
、no-store
、no-cache
或max-age=0
,或者响应中有 cookie,则 CIS 不会缓存资源。 请注意,不应该高速缓存敏感材料,所以如果是敏感材料,可以考虑使用这些头。 -
如果 Cache-Control 标头设置为
public
,且max-age
大于 0,或者Expires
标头在未来任何时候设置,则资源将被缓存。
根据 RFC 规则,Cache-Control: max-age
优先于 Expires
标头。 如果两者都被看到,并且不一致,max-age
则获胜。
使用 s-maxage
头
控制缓存行为和浏览器缓存行为的第三种方法是使用 s-maxage
Cache-Control 头信息。
通常,CIS 会尊重 max-age
指令。
Cache-Control: max-age=1000
但如果要指定与浏览器不同的缓存超时时间,CIS,可以使用 s-maxage
。 下面的示例告诉 CIS 将对象缓存 200 秒,告诉浏览器将对象缓存 60 秒。
Cache-Control: s-maxage=200, max-age=60
基本上,s-maxage
仅用于反向代理(因此浏览器应忽略它),而 CIS 则优先于 s-maxage
(如果有的话)。CIS 尊重浏览器缓存设置或 max-age
标头中的较高值。
有关高速缓存控制头和页面规则的可靠性摘要
关于高速缓存的可靠性,我们总结了以下一些要考虑的主要方面:
-
检查源的高速缓存头,以确保不存在可高速缓存资源的覆盖头(
Cache-Control
和Expires
)。 -
缺省情况下,CIS 始终高速缓存静态内容,不同返回码的 TTL 如下:
200 301 120m; 302 303 20m; 403 5m; for reliability 404 5m; any 0s;
-
要缓存更多内容,请在 URL 上创建页面规则,并将缓存级别设置为
Cache everything
(如果您的网络服务器在请求该 URL 时返回 404,则该结果仅缓存于 5m )。 -
要避免对 URL 进行高速缓存,请创建将高速缓存级别设置为
Bypass
的页面规则。
转发 URL
为确保您的内容始终可用,请创建使用转发 URL 设置的页面规则,以防您的网站不可用。
当您启用转发 URL 时,所有其他设置都会被禁用,因为您要将所有流量发送到另一个 URL。
设置转发 URL
要启用转发功能 URL,请按以下步骤操作:
- 使用导航菜单选择性能下的页面规则。
- 使用引用域的 URL 模式创建页面规则。
- 添加转发 URL 设置。
- 选择转发类型并输入目标 URL。
- 选择供应资源。
转发 URL 范例
想象一下,您希望让任何前来的人都能轻松访问 URL:
*www.example.com/+
*example.com/+
此模式匹配:
http://example.com/+
http://www.example.com/+
https://www.example.com/+
https://blog.example.com/+
https://www.blog.example.com/+
它不匹配:
http://www.example.com/blog/+ [extra directory before the +]
http://www.example.com+ [no trailing slash]
创建符合所需内容的模式后,添加转发 URL 设置,选择转发类型并输入目的地 URL。 例如:
https://plus.google.com/yourid
选择供应资源。 在几秒钟内,与该模式匹配的任何请求都将转发到具有指定重定向的新 URL。
高级转发选项
如果使用基本重定向(例如,将根域转发到 www.yourdomain.com
),那么 URL 中的其他任何内容都将丢失。 例如,可以设置模式:
example.com
并将其转发至:
http://www.example.com
但是,如果某位用户输入了以下内容:
example.com/some-particular-page.html
那么会重定向到:
www.example.com
替代:
www.example.com/some-particular-page.html
解决方案是使用变量。 每个通配符与可在转发地址中引用的变量对应。 变量由 $
后跟一个数字表示。 要引用第一个通配符,将使用 $1
,要引用第二个通配符,将使用 $2
,依此类推。 要修复上一示例中从根域到 www
的转发,请使用相同的模式:
example.com/*
然后设置以下 URL 作为流量转发目的地:
http://www.example.com/$1
在此情况下,如果某位用户访问:
example.com/some-particular-page.html
会重定向到:
http://www.example.com/some-particular-page.html