OpenResty Edge™ 產品介紹

OpenResty Edge™ 產品介紹
由 OpenResty Inc. 公司出品
2019.4
OpenResty Edge™ 產品基於成熟的開源 OpenResty 平臺技術
同時大量使用了 OpenResty Inc. 公司各種領先的私有技術和演算法。
OpenResty Edge™ 軟體的組成
  • Edge Node
  • Edge Admin
  • Edge Log Server
使用者自主佈署所有軟體
  • 公有云
  • 私有云
  • 物理伺服器
  • 個人電腦和筆記本
在最高層面上,Edge Node 軟體是一個流量代理
Edge Node
Edge Admin 軟體負責實時同步配置給 Edge Node
Edge Admin
Edge Admin 軟體提供多種操控方式
支援 REST API 及 PHP/Python 等語言的客戶端 SDK
提供基於 Web 的控制檯圖形介面
Edge API
基於 Edge Log 伺服器的實時聚合日誌與統計指標推送
Log Server
支援自定義實時指標,多級指標彙總計算
避免了生成和傳輸龐大的日誌檔案的巨大損耗
直接在資料來源進行各種複雜的彙總計算
Edge Node Metrics
實時閘道器錯誤日誌去重、聚合和上報
Error Log
支援任意多個 Edge Node 伺服器節點
支援成千上萬個節點
Multiple Node
支援線上動態新增 Edge Node 節點
內建 DNS 自動聯動
閘道器叢集快取一致性雜湊自動聯動
支援線上動態刪除 Edge Node 節點
內建 DNS 自動聯動
閘道器叢集快取一致性雜湊自動聯動
也可以單獨標記某一個節點下線,而不實際刪除它
Offline Node
Edge Node 節點可以遍佈全球
Worldwide Node
支援多層網路,自主控制長距離的網路路由
多層網路中每一級 Edge Node 節點都可以快取資源
離源站或後端應用越近的節點,越容易命中快取
支援各種後端伺服器和應用
Various Kinds of Backends
管理員可以線上定義後端機器的分組
提供相同服務的後端機器一般作為一組,
稱為一個“上游”。
上游
管理員也可以配置“備份上游”
備份上游在主上游
不可用時才啟用。
可以按指定比例在多個“上游”之間分配流量
Multiple Upstreams
支援按任意使用者條件,轉發請求到不同的“上游”
Multiple Upstreams
支援線上動態建立、修改和刪除站點配置
每個站點支援一個或多個域名,包括萬用字元域名。
支援幾萬、幾十萬乃至上百萬個站點,同時每節點的記憶體佔用很低。
Multiple Sites
管理員可以線上上傳任意多個 SSL 證書和私鑰
上傳的證書和私鑰會以加密形式實時同步到所有節點
每個站點可以有多個證書
上傳SSL證書
可以自動生成免費的 SSL 證書
使用非盈利的 Let’s Encrypt 證書籤發服務
Let’s Encrypt
自動更新 Let’s Encrypt 簽發的免費 SSL 證書
當免費證書快過期時,Edge Admin 主控系統會自動更新證書。
Update Let’s Encrypt
支援多種客戶端請求協議
Multiple Protocols
內建的 DNS 權威伺服器實現
  • 所有閘道器節點也同時是 DNS 權威伺服器(可禁用)
  • 閘道器節點的上下線與 DNS 權威伺服器聯動
  • 與帶萬用字元域名支援的 Let's Encrypt 證書自動簽發服務聯動
  • EDNS 客戶端子網支援(Client Subnet)
DNS Authority
就近排程客戶流量的智慧 DNS
按網路服務提供商(ISP)與地理位置進行排程。
閘道器配置的實時增量全網同步
站點配置可實現請求級別的熱更新
每個 Edge Node 節點都有本地的帶事務保護和記憶體快取的鍵值對資料庫。同一個作業系統執行緒中的其他併發請求都不受任何影響。
Request Level Sync
Edge Admin 下線或網路不通,不影響 Edge Node 的服務
Admin goes offline
Edge Log 服務下線或網路不通,也不影響 Edge Node 的服務
Log Server goes offline
Edge Node 伺服器按叢集分組
Grouped by Gateway Cluster
閘道器叢集級別共享 HTTP/HTTPS 響應的快取
同一個資源會對映到叢集內的同一個節點,使用一致性雜湊。
每個節點快取的資源各不相同。
閘道器叢集級別共享快取
閘道器叢集級別的 HTTP/HTTPS 響應快取共享
如果某個資源的快取直接對映到本節點,則直接返回快取的資源。
Share Cache on Gateway Cluster Level
也支援禁用閘道器叢集級別的響應共享
每個節點可能都會快取一份同一資源的響應。
Support disable Cluster-level Cache Sharing
閘道器叢集級別的 SSL session ID 狀態共享
針對不支援 SSL session ticket 的老客戶端
Share SSL Session id
多個閘道器叢集可以組成分割槽
使用者自定義任意多分割槽,不同分割槽可以推送不同的站點配置。
Group Gateway Clusters
可以同步不同的站點配置到不同的分割槽
可以區分內網應用和外網應用,也可以向測試叢集作“灰度釋出"
也可以同步同一個站點配置到多個分割槽
指定快取資源的全網秒級實時重新整理
支援全站重新整理、精確 URL 列表重新整理、任意使用者條件重新整理(URL 引數、請求頭等條件或它們的任意組合)
強大的請求改寫引擎
可基於網頁表單、API 和小語言規則來配置。
可基於規則動態修改請求的 URI、URL 引數、請求頭、請求方法等等。
Request Rewrite Engine
強大的響應改寫引擎
可基於網頁表單、API 和小語言規則來配置。
可基於規則動態修改響應的狀態碼、響應頭等等。
Response Rewrite Engine
內建 Web 應用防火牆(WAF)
惡意請求會被 WAF 直接遮蔽,正常請求則透過
WAF bad request
WAF good request
提供基於規則的“領域內小語言”,Edge 語言
可用於表達非常複雜的閘道器定製邏輯
可用於實現“邊緣計算
Edge Rules
Edge 語言最佳化編譯器跨規則合併正則模式
可自動合併正規表示式模式為單個狀態機,
無論多少正則只需掃描一遍。
Combine Regular Expression
Edge 語言最佳化編譯器跨規則合併常量字首模式
跨規則合併常量字首模式,生成單個 Trie 樹以實現單遍掃描
針對模式集合動態最佳化 Trie 樹的程式碼和記憶體佈局。
Edge Rule Optimization
Edge 語言在特權模式下也支援呼叫外部 Lua 模組
Lua 程式碼片段中也可以直接
呼叫外部任意的
動態連結庫
(僅限特權模式)
invoke Lua modules
使用者 Lua 程式碼亦可呼叫任意外部的動態連結庫
管理員自己確保每臺 Edge Node 伺服器上都有所需要的動態連結庫
Load SO File