Home 技術文章 為您的線上業務配置邊緣
Applications

為您的線上業務配置邊緣

About The Author

Outline

摘要

EdgeCast (現稱為Edgio)為媒體公司和全球企業提供邊緣解決方案。 Edgio的高質量交付,計算,安全和流媒體解決方案構建在我們領先的全球邊緣網路之上,為世界上一些最大的網站,應用程式和OTT服務提供強大的支援和保護。 我們深知可配置性和靈活性對客戶的重要性,因此我們提供了大量技術,讓客戶掌控一切。 Rules Engine只是其中一個例子。

Edgio的規則引擎允許自定義我們的邊緣網路處理請求的方式。 默認情況下,Edgio會尊重從客戶來源發送的所有標頭。 但是,根據內容和客戶使用案例,可能需要自定義規則來覆蓋源伺服器的預設行為。 Rules Engine及其關聯的API提供了極大的靈活性和可配置性。 它們使客戶能夠以無與倫比的精確度控制其內容交付和安全需求。 在本文中,我們將深入探討一些常見的使用案例,並確定利用規則引擎中定義的各種規則所獲得的好處。

規則引擎功能

Rules Engine包含許多有價值的功能,每個功能都定義了應用到由一組匹配條件標識的請求的操作類型。匹配條件標識了將執行一組功能的特定類型的請求。讓我們先看看客戶可用的功能類型。這些功能可自定義我們的邊緣網路管理其內容請求的方式。‍

‍‍訪問:這些功能控制對內容的訪問。 例如,令牌驗證功能確定是否將基於令牌的驗證應用於請求。 這有助於將數據,文件或頁面的訪問權限限制在只有具有適當權限的用戶才能訪問。 這可防止內容或資訊與未授權的用戶共享。 其他訪問控制包括國家/地區。

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

暫存:這些功能可自定義內容暫存的時間和方式。 Rules Engine提供數十種快取功能,協助您微調邊緣處理內容的方式。 例如,部分暫存共享(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與原始伺服器的通信方式。 例如,Maximum keep-alive requests (最大保持活動請求數)定義了保持活動連接關閉之前的最大請求數。 這通過最小化請求所需的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>
				
			

User Variable (用戶變量):為傳遞給定制流量處理解決方案的用戶定義變量分配值。 這通常與我們的自定義後端腳本語言(LUA)一起使用。 優點之一是,它使用戶能夠將用戶定義的變量注入靜態配置,以控制伺服器負載平衡的後端。

規則引擎功能/優點摘要。

使用案例

將HTTP重定向到HTTPS:如果您不強制通過TLS進行網站或應用程式流量,訪問者將在其瀏攬器中看到令人害怕的安全警告彈出窗口。 網站訪客知道,不安全的網站容易受到攻擊,這些攻擊可能會竊取他們的資訊。 安全的站點可以建立信任。 它讓訪客知道您正在盡力保護他們的個人數據。 HTTPS是確保安全性和可訪問性的關鍵,使用規則引擎可以輕鬆地從HTTP重定向到HTTPS。 Edgio還通過SSL的密鑰庫集成提供完全託管的安全套接字層(SSL)和自帶證書(BYOC) SSL。

瞭解訪客的地理區域和裝置類型:企業可以瞭解網站訪客的來源以及使用的裝置類型,進而獲得豐富的情報。 使用規則引擎,可以添加自定義日誌字段,以便深入瞭解請求的地理位置和所用設備類型。 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>
				
			

拒絕訪問內容:線上企業需要拒絕或阻止訪問其內容的原因有很多。 地理區域鎖定根據最終用戶的位置限制對內容的訪問。 這可能是公司遵守經濟制裁和隱私法律或阻止安全威脅所必需的。 您可以在規則引擎中設定地理區域鎖定規則,以使用各種位置匹配條件(包括區域和國家代碼)拒絕或允許訪問內容。

				
					<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將遵循源伺服器設定的暫存指令。 但是,如果源站請求繞過暫存,客戶可以輕易忽略此指令,即暫存資產以供交付。 這允許使用規則引擎簡化暫存控制,並防止客戶不得不更改原始伺服器。
  • “外部最長存留期”規則允許控制瀏攬器以進行邊緣伺服器暫存重新驗證。 換句話說,客戶可以指定瀏攬器從邊緣伺服器檢查新版本資產之前應經過的時間。
  • 重新驗證時過期規則允許邊緣伺服器在重新驗證時向請求者提供過期內容,從而提高性能。 客戶可以完全控制CDN可能交付過時內容的生存時間(TTL)過期時間。 此版本的一個版本是過時的“出錯時內容傳遞”規則。 當發生錯誤時,在快取重新驗證期間或從原始伺服器擷取要求的內容時,這可用來提供過期的快取內容。 在某些情況下,客戶可能更喜歡這樣做,而不是將錯誤轉發給最終用戶。
  • 也可以通過規則引擎設定負暫存,以便對特定故障進行短暫暫存,從而防止源伺服器出現生成錯誤的此類請求激增。 我們已經看到,當無法滿足請求時,這種配置可以緩解源站的壓力。 這是一項很棒的功能,用戶可以對其進行配置,以減少4xx或5xx請求上的源站峰值。
  • Rules Engine中的流媒體優化功能非常適合調整暫存配置,以優化實時流的性能並減少源伺服器上的負載。

根據您的需求進行獨特配置

我們知道,沒有兩個客戶是相同的,即使是同一行業的兩家公司也會有不同的內容要求。 Rules Engine使您可以完全控制如何配置網路來處理您的內容。 我們與各種規模的公司合作,確保我們的網路經過微調,以滿足專業交付內容的要求。

聯繫我們,了解更多有關規則引擎如何支援您的內容和交付需求的資訊。