博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Orange - 基于OpenResty的API Gateway
阅读量:6039 次
发布时间:2019-06-20

本文共 1648 字,大约阅读时间需要 5 分钟。

Orange

Orange是一个基于OpenResty的API Gateway,提供API及自定义规则的监控和管理,如访问统计、流量切分、API重定向、WEB防火墙等功能。它有以下特性:

  • 配置项支持文件存储和MySQL存储(0.2.0版本开始将去除文件支持)

  • 通过MySQL存储来简单支持集群部署

  • 支持多种条件匹配和变量提取

  • 支持通过自定义插件方式扩展功能

  • 默认内置六个插件

    • 全局状态统计

    • 自定义监控

    • URL重写

    • URI重定向

    • 简单防火墙

    • 代理、ABTesting、分流

  • 提供管理界面用于管理内置插件

  • 以restful形式完全开放API

Github:

Screenshots

clipboard.png

clipboard.png

安装说明

  • 安装OpenResty1.9.7.3+

  • 安装,Orange要求的lor最低版本为0.1.0

  • Orange使用的uuid生成器,依赖libuuid.so, centos可通过以下命令安装,其他linux发行版请自行google

    yum install libuuid-devel
  • 安装Orange

    git clone https://github.com/sumory/orangecd orange#查看并根据需要修改`orange.conf`{  "plugins": [//默认的可用插件,若不需要删除即可    "stat",    "monitor",    "redirect",    "rewrite",    "waf",    "divide"  ],  "store": "mysql", //存储方式:`mysql`  "store_mysql": { //使用`mysql`存储时的配置,需要导入install/${对应版本}.sql到数据库中    "timeout": 5000,    "connect_config": {      "host": "127.0.0.1",      "port": 3306,      "database": "orange",      "user": "root",      "password": "",      "max_packet_size": 1048576    },    "pool_config": {      "max_idle_timeout": 10000,      "pool_size": 3    },    "desc":"mysql configuration"  }}#修改conf/nginx.conf里的一些配置,如# `resolver`,用于DNS解析# 各日志目录等# 各lua_shared_dict的大小# 端口为9999的`server`, 这个server用于Orange的管理,请确保对该端口的访问授权,如只支持内网访问#修改好orange.conf和conf/nginx.conf后,启动即可sh start.sh
  • 访问

特别注意

  • 现实中由于用户的业务系统多种多样,对于复杂应用,Orange并不是一个开箱即用的组件,需要调整一些配置才能集成到现有系统中。

  • Orange提供的的配置文件和示例都是最简配置,用户使用时请根据具体项目或业务需要自行调整,这些调整可能包括但不限于:

    • 使用的各个shared dict的大小, 如ngx.shared.status

    • nginx.conf配置文件中各个server、location的配置及其权限控制,比如orange dashboard的server应该只对内部有权限的机器开放访问

    • 根据不同业务而设置的不同nginx配置,如timeout、keepalive、gzip、log、connections等等

其它

Orange0.2.0版本即将发布,API已经全部开放,用户可通过默认的Dashboard管理,也可通过Restful的API进行操作。第三方SPA版的Dashboard已在开发中,届时会伴随0.2.0一起发布。

转载地址:http://dvghx.baihongyu.com/

你可能感兴趣的文章
web模拟终端博客系统
查看>>
[Android组件化]Kotlin的路由跳转
查看>>
Java&Android 基础知识梳理(5) 类加载&对象实例化
查看>>
无后端完成在线翻译功能
查看>>
异步编程方案进化论
查看>>
Android小游戏——简单易懂单机人人对战五子棋源码详解
查看>>
RabbitMQ消息队列(五):Routing 消息路由
查看>>
十五、AVAudioPlayer播放音乐注意点
查看>>
exports、module.exports 和 export、export default 到底是咋回事
查看>>
广告系统相关术语
查看>>
JS每日一题: 说说你对前端模块化的理解
查看>>
js数组和字符串的方法
查看>>
iOS开发实战小知识点(六)——iPhone X Push VC Tabbar上移bug修复
查看>>
《函数式swift》学习一
查看>>
使用ABAP Push Channel(APC)开发的乒乓球游戏,可双打
查看>>
TiDB 源码阅读系列文章(九) Hash Join
查看>>
UITextField修改placeholder文字大小和颜色
查看>>
SpringBoot 的第一次邂逅
查看>>
Django 使用心得 (三)利用 middleware 和 signal 实现数据的 「create_by」 记录功能...
查看>>
Python微信公众号开发
查看>>