Home 技术文章 为您的在线业务配置边缘
Applications

为您的在线业务配置边缘

About The Author

Outline

摘要

EdgeCast (现称Edgio)为媒体公司和全球企业提供边缘解决方案。 Edgio的高质量交付,计算,安全和流媒体解决方案建立在我们领先的全球边缘网络之上,为世界上一些最大的网站,应用程序和OTT服务提供支持和保护。 我们了解可配置性和灵活性对客户的重要性,这也是我们提供一系列控制客户的技术的原因。 规则引擎只是这方面的一个例子。

Edgio的规则引擎允许自定义边缘网络处理请求的方式。 默认情况下,Edgio认可从客户来源发送的所有标头。 但是,根据内容和客户用例,可能需要自定义规则来覆盖源服务器的默认行为。 规则引擎及其关联的API提供了极大的灵活性和可配置性。 它们使客户能够以无与伦比的精度控制其内容交付和安全需求。 在本文中,我们将深入探讨一些常见的用例,并确定使用规则引擎中定义的各种规则所带来的好处。

规则引擎功能

规则引擎包括许多有价值的功能,每个功能都定义了要应用于由一组匹配条件标识的请求的操作类型。 匹配条件标识将对其执行一组图元的特定类型的请求。 让我们先看看客户可以使用的功能类型。 这些自定义了我们的边缘网络管理其内容请求的方式。

访问: 这些功能控制对内容的访问。 例如,令牌身份验证功能确定是否将基于令牌的身份验证应用于请求。 这有助于限制和锁定对数据,文件或页面的访问,仅限具有适当权限的用户访问。 这可防止内容或信息与未经授权的用户共享。 其他访问控制包括国家/地区/地理位置。

				
					<rule>
   <description>Enable Token Auth</description>
   <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
      <feature.access.token-auth enabled="true"/>
   </match.request.edge-cname.literal>
</rule>
				
			

缓存: 这些功能可自定义缓存内容的时间和方式。 规则引擎提供了数十种缓存功能,可帮助您微调边缘处理内容的方式。 例如,部分缓存共享(PCS)指示部分缓存的文件是否可以在后续请求中开始作为缓存命中处理,或者是否需要在从边缘提供文件之前完全缓存。 启用后,PC可帮助减少源站负载并提高性能。 这意味着向源内容发出的源站请求更少,这可能导致主机/源站的带宽费用更低。 同时,优化缓存可以通过尽可能从CDN边缘提供内容来帮助提高性能。

				
					<rule>
   <description>Enable Partial Cache Sharing</description>
   <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
      <feature.caching.partial-cache-sharing enabled="true"/>
   </match.request.edge-cname.literal>
</rule>
				
			

标头: 这些功能可动态处理请求和/或响应标头。 例如,”修改客户机请求标头”使用户可以覆盖,追加或删除请求中的标头。 用户可以通过自定义从客户端发送或从服务器接收的数据来控制其网站和应用程序的行为。

				
					<rule>
    <description>Add CORS Header</description>
    <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
        <feature.headers.modify-client-response-header action="set" name="access-control-allow-origin" value="*"/>
    </match.request.edge-cname.literal>
</rule>
				
			

日志: 在基于UI的分析套件中,可以生成原始,实时和自定义日志,以深入(或360度)查看CDN和安全流量足迹。 这些功能可自定义存储在原始日志文件中的数据。 例如,掩码客户机子网确定是否为记录和报告目的屏蔽客户机的IP地址。 这有助于遵守(GDPR)的《一般数据保护条例》。 我们使用实时日志交付来支持全球金融科技公司Plus500,使他们能够更快,更安全地发布软件。

源服务器: 这些功能控制CDN与源服务器通信的方式。 例如,最大保持活动请求数定义了保持活动连接在关闭之前的最大请求数。 这通过最小化请求所需的TCP身份验证步骤数来帮助边缘性能。

专业: 这些功能提供了CDN与源站或客户端的行为方式的高级功能。 例如,通过切换QUIC规则,您可以指定是否通知客户我们的CDN服务支持QUIC。 这样,Edgio就可以提供优化的网页,使其发挥最佳性能。

				
					<rule>
    <description>Enable QUIC</description>
    <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
        <feature.specialty.quic enabled="true"/>
    </match.request.edge-cname.literal>
</rule>
				
			

用户变量: 为传递给定制流量处理解决方案的用户定义变量分配一个值。 这通常与我们的自定义后端脚本语言(LUA)一起使用。 其中一个优点是,它使用户能够将用户定义的变量注入静态配置,以控制服务器负载平衡的后端。

规则引擎功能/优点摘要。

用例

将HTTP重定向到HTTPS: 如果您未强制您的网站或应用程序流量通过TLS,访问者将在其浏览器中看到可怕的安全警告弹出。 网站访问者知道,不安全的网站容易受到攻击,从而窃取他们的信息。 安全的站点会让人产生信任感。 它让访问者知道您正在尽自己的责任来保护他们的个人数据。 HTTPS是确保安全性和可访问性的关键,使用规则引擎可以轻松地从HTTP重定向到HTTPS。 Edgio还通过SSL的密钥库集成提供完全托管的安全套接字层(SSL)和自带证书(BYOC) SSL。

了解访问者地理位置和设备类型: 企业可以通过了解其Web资产访问者来自何处以及使用的设备类型来获得丰富的情报。 使用规则引擎,可以添加自定义日志字段,以便深入了解请求的地理位置和使用的设备类型。 HTTP变量使此操作变得简单,并允许将这些度量添加到原始日志中。 这将创建更全面的日志记录,内部报告,监控,见解和故障排除。

此外,URL重定向功能使企业能够根据最终用户的地理区域将请求重定向到不同的URL。 这对维护不同区域特定版本的网站(例如不同语言和主题)的跨国公司特别有用。

				
					<rule>
   <description>Language Redirect</description>
   <select.first-match>
       <match.location.country.literal result="match" codes="US">
           <feature.url.url-redirect source="/80666BA/Origin1/(.*)" destination="%{scheme}://www.example-edgecat.com/us/$1" code="301"/>
       </match.location.country.literal>
       <match.location.country.literal result="match" codes="DE">
           <feature.url.url-redirect source="/80666BA/Origin1/(.*)" destination="%{scheme}://www.example-edgecat.com/de/$1" code="301"/>
       </match.location.country.literal>
   </select.first-match>
</rule>
				
			

另一个地理用例与固件下载有关。 通常,全球分布的客户只有一个URL用于固件下载。 但这些需要从最近的区域服务器中提取请求,以获得更好的最终用户体验,并确保服务器不会因过多请求而过载。 使用规则引擎,可以应用URL重写,以便根据发起请求的地理位置将请求重新路由到区域服务器。

				
					<rule>
    <description>Rewrite for Regional Origin Servers</description>
    <select.first-match>
        <match.location.country.literal result="match" codes="US">
            <feature.url.url-rewrite source="/80666BA/Origin1/(.*)" destination="/80666BA/Origin-US/$1"/>
        </match.location.country.literal>
        <match.location.country.literal result="match" codes="DE">
            <feature.url.url-rewrite source="/80666BA/Origin1/(.*)" destination="/80666BA/Origin-DE/(.*)"/>
        </match.location.country.literal>
    </select.first-match>
</rule>
				
			

拒绝访问内容: 在线企业需要拒绝或阻止访问其内容的原因有很多。 Geoblocking根据最终用户的位置限制对内容的访问。 这对于公司遵守经济制裁和隐私法或阻止安全威胁来说可能是必要的。 可以在规则引擎中设置地理位置锁定规则,以使用各种位置匹配条件(包括区域和国家/地区代码)拒绝或允许访问内容。

				
					<rule>
    <description>Deny RU Access</description>
    <match.location.country.literal result="match" codes="RU">
        <feature.access.deny-access enabled="true"/>
    </match.location.country.literal>
</rule>
				
			

客户还可以使用基于令牌的身份验证拒绝访问内容。 这包括根据传入请求的多种特征拒绝或允许访问内容,例如精确的地理位置,URL路径,各种报头和/或Cookie的值,文件名,IP地址等。 Geoblocking用于Netflix和Hulu等流媒体服务,以遵守他们通过互联网交付的内容的许可法律。

缓存控制: 规则引擎允许客户微调其内容在边缘服务器上的缓存方式。 根据您的内容和交付要求,可以应用数十种缓存规则。 以下是一些用例示例:

  • 默认情况下,CDN将遵循源站设置的缓存指令。 但是,如果源站请求绕过缓存,客户可以轻松忽略此指令,以便缓存资产以供交付。 这允许使用规则引擎简化缓存控制,并防止客户进行源站更改。
  • 外部最长期限规则允许控制浏览器到边缘服务器缓存重新验证。 换言之,客户可以指定浏览器从边缘服务器检查资产的新版本之前应经过的时间。
  • “过时而重新验证”规则允许我们的边缘服务器在重新验证时向请求者提供过时内容,从而提高性能。 客户可以完全控制(TTL)上线时间过期后的时间长度,在此期间CDN可能会交付过时内容。 此规则的一个版本是”错误时过时内容传递”规则。 这可用于在发生错误时,在缓存重新验证期间或从源服务器检索请求的内容时提供过期的缓存内容。 在某些情况下,客户可能更喜欢这样做,而不是将错误转发给最终用户。
  • 也可以通过规则引擎设置负缓存,以快速缓存特定故障,从而保护源站免受生成错误的大量此类请求的影响。 我们已经看到,当请求无法满足时,此配置可以缓解来自源站的压力。 这是一个很好的功能,用户可以配置它来减少4xx或5xx请求上的源站高峰。
  • 规则引擎中的流优化功能非常适合优化缓存配置,以优化实时流的性能并减少源服务器上的负载。

根据您的需要进行独特的配置

我们知道,没有两个客户是相同的,即使是同一行业中的两家公司也会有不同的内容要求。 规则引擎使您可以完全控制如何配置网络来处理您的内容。 我们与小型和大型公司合作,可以确保我们的网络经过微调,以满足您的内容的专家交付。

联系我们 以了解更多有关规则引擎如何支持您的内容和交付需求的信息。