IBM Cloud Docs
管理您的 CIS 部署,以获得最佳可靠性

管理您的 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 站点页面处于脱机状态。

设置服务过期内容

要启用 服务过期内容,请执行以下步骤。

  1. 使用导航菜单转到 Performance > Caching
  2. 切换 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 缺省行为是根本不会进行高速缓存,而源高速缓存控制设置会高速缓存,但始终会重新验证。

设置起源缓存控制

请按照以下步骤启用“源缓存控制”。

  1. 使用导航菜单选择性能下的页面规则
  2. 使用引用域的 URL 模式创建页面规则。
  3. 添加源高速缓存控制设置,状态为开启。
  4. 选择供应资源

页面规则优先顺序

总体而言,这些特定页面规则优先于缓存。

  • 如果页面规则的缓存级别设置为 Bypass,则与该页面规则匹配的资源不会被缓存。CIS 仍将充当代理,我们的其他性能功能也将保持激活状态。 但是,将直接从源服务器访存内容,而不是从高速缓存提供。

  • 如果页面规则将高速缓存级别设置为Cache everything,那么会高速缓存与该页面规则匹配的资源。 使用此页面规则设置是告诉 CIS 缓存 CIS 认为静态资源(包括 HTML)之外的资源的唯一方法。

如果未设置页面规则,CIS 将使用 Standard 缓存模式,该模式基于资源的扩展名。CIS 仅缓存静态资源。

源 cache-control 头

改变 CIS 缓存内容的第二种方法是通过从原点发送的缓存头。CIS 尊重这些设置,但您可以通过指定 Edge Cache TTL 页面规则设置来覆盖这些设置。 以下是 CIS 在决定从您的源缓存哪些资源时会考虑的标头:

  • 如果 Cache-Control 标头设置为 privateno-storeno-cachemax-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-ControlExpires)。

  • 缺省情况下,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,请按以下步骤操作:

  1. 使用导航菜单选择性能下的页面规则
  2. 使用引用域的 URL 模式创建页面规则。
  3. 添加转发 URL 设置。
  4. 选择转发类型并输入目标 URL。
  5. 选择供应资源

转发 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