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