Orange:基于NGINX Openresty的API网关

管理员 API网关1 19,8133字数 1045阅读3分29秒阅读模式

Orange是一个基于OpenResty的API Gateway,提供API及自定义规则的监控和管理,如访问统计、流量切分、API重定向、API鉴权、WEB防火墙等功能。Orange可用来替代前置机中广泛使用的Nginx/OpenResty, 在应用服务上无痛前置一个功能丰富的网关系统。它有以下特性:

  • 动态更新Nginx/OpenResty配置而无需重启或reload
  • 通过MySQL存储来简单支持集群部署
  • 支持多种条件匹配和变量提取
  • 支持通过自定义插件方式扩展功能
  • 内置多个通用插件
    • 全局状态统计
    • 自定义监控
    • URL重写
    • URI重定向
    • 访问限速
    • Key based rate limiting
    • HTTP Basic Auth
    • HTTP Key Auth
    • Signature Auth
    • 简单防火墙WAF
    • 代理、ABTesting、分流
    • Shared Dict存取接口
  • 提供Dashboard用于管理内置插件
  • 开放API: 所有插件均开放API供第三方使用, 通过这些API可简单灵活得配置插件、查看运行状态、统计数据等。
  • 架构简单,依赖少,许可协议宽松,适合直接二次开发或改造。

API

内置插件以HTTP Restful形式开放全部API,详细可查看API文档文章源自运维生存时间-https://www.ttlsa.com/orange/orange-nginx-openresty-api-gateway/

注意

  • 现实中由于用户的业务系统多种多样,对于复杂应用,Orange并不是一个开箱即用的组件,需要调整一些配置才能集成到现有系统中。
  • Orange提供的的配置文件和示例都是最简配置,用户使用时请根据具体项目或业务需要自行调整,这些调整可能包括但不限于:
    • 使用的各个shared dict的大小, 如ngx.shared.status
    • nginx.conf配置文件中各个server、location的配置及其权限控制,比如orange dashboard/API的server应该只对内部有权限的机器开放访问
    • 根据不同业务而设置的不同nginx配置,如timeout、keepalive、gzip、log、connections等等

Licence

Orange采用MIT协议开源文章源自运维生存时间-https://www.ttlsa.com/orange/orange-nginx-openresty-api-gateway/

其它

  • Orange的插件模式参考了Kong,Kong是一个功能比较全面的API Gateway实现,推荐关注。
  • Orange与Kong的不同(刨除基础设计,如存储、API)主要体现在针对”插件”和”API”的组织方式, Orange在流量筛选和变量提取方面相对来说更灵活一些。

DEMO-凉白开提供

为了让大家更直观了解他,我给大家一个demo地址,BUT,后续会删除,地址:http://172.104.73.85:9999/文章源自运维生存时间-https://www.ttlsa.com/orange/orange-nginx-openresty-api-gateway/

2017-06-10 提供文章源自运维生存时间-https://www.ttlsa.com/orange/orange-nginx-openresty-api-gateway/ 文章源自运维生存时间-https://www.ttlsa.com/orange/orange-nginx-openresty-api-gateway/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
管理员
  • 本文由 发表于 10/06/2017 00:18:09
  • 转载请务必保留本文链接:https://www.ttlsa.com/orange/orange-nginx-openresty-api-gateway/
评论  1  访客  1
    • 天天向上
      天天向上 0

      什么地方可以下载测试

    评论已关闭!