参与开发

如何做? Fork 源码 克隆Fork后的仓库至你的电脑 1$ git clone https://github.com/<username>/orange.git 创建一个特性分支 1$ git checkout -b new_feature 在new_feature分支上对Orange进行修改 提交分支: 1$ git push origin new_featu...

发布于 Guides

使用场景

Orange是基于插件设计的,基本思想是通过实现各种插件灵活的在Nginx的各个执行阶段进行逻辑处理。 Orange提供的默认插件功能如下: 全局的监控插件,可统计API访问情况、Nginx连接情况、流量统计、QPS等 自定义监控,可根据配置的规则筛选监控项,统计其各个指标 rewrite插件,可通过UI配置各种rewrite策略,省去手写nginx rewrite,然后重启的麻烦 red...

发布于 Guides

匹配符、表达式设计

Orange各模块使用的一些匹配项、匹配符和表达式概念。 匹配项 URI IP Header K/V Query K/V Host Referer PostParams K/V UserAgent Method 匹配符 = != match not_match > >= < <= 表达式 单一条件表达式 全真表达式 至少一个为真表达式...

发布于 Concept

关于Orange

欢迎使用Orange,使用过程中如碰到问题,请到Github进行提问。 关于Orange是一个基于OpenResty的API Gateway,提供API及自定义规则的监控和管理,如访问统计、流量切分、API重定向、API鉴权、WEB防火墙等功能。它有以下特性: 通过MySQL存储来简单支持集群部署 支持多种条件匹配和变量提取 支持通过自定义插件方式扩展功能 默认内置的插件 全局状态统计 自...

发布于 Guides

变量提取器

每个提取器的格式如下: 1234{ "type": "", "name": ""}, 实例: 12345678{ "type": "Query", "name": "username&qu...

发布于 Concept

条件判断模块

条件判断模块,是一系列匹配条件和使用方式的集合。它由以下几部分组成 type: 0表示只有一个匹配条件,1表示对所有条件与操作,2表示对所有条件或操作,3表示按照另一个字段expression对所有条件求值 expression: 当type为3时,此字段不为空,它的格式是一个lua的逻辑判断表达式。表达式中每个值的格式为v[index], 比如v[1]对应的就是第一个条件的值。示例:(v...

发布于 Concept

变量提取模块

变量提取模块,是一系列变量提取器的集合,一般格式如下: 1234567891011121314"extractor": { "type": 1,//提取器类型,1指索引式提取,2指模板式提取 "extractions": [ {//一个提取器 "type&...

发布于 Concept

后续处理模块

后续处理模块,它包含了一些后续处理需要的配置、参数等信息,比如是否需要记录日志、响应状态码、要跳转到的URL、要代理的下游upstream server等等。详细请参看各个插件的配置。

发布于 Concept

匹配条件

每个条件的格式如下: 123456{ "type": "", "operator": "", "name":"", //可能为空 "value": ""} 实例: 123456789101...

发布于 Concept

规则

** 规则 ** 是Orange中的一个概念,它可能包括一个条件判断模块、一个变量提取模块和一个后续处理模块。一般情况下,插件的一条规则会包含条件判断模块和一个处理模块,根据需要选择是否使用变量提取模块,如分流插件就需要变量提取模块,但防火墙插件则不需要。 下面通过一个具体的实例看一下它的组成。 格式以重定向插件的一条规则的结构为例,介绍如下(以json格式描述): 123456789101...

发布于 Concept

本站由 @anonymity 使用 Stellar 主题创建。