资讯专栏INFORMATION COLUMN

Orange - 基于OpenResty的API Gateway

Cc_2011 / 1287人阅读

摘要:是一个基于的,提供及自定义规则的监控和管理,如访问统计流量切分重定向防火墙等功能。第三方版的已在开发中,届时会伴随一起发布。

Orange

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

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

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

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

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

默认内置六个插件

全局状态统计

自定义监控

URL重写

URI重定向

简单防火墙

代理、ABTesting、分流

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

以restful形式完全开放API

Github: https://github.com/sumory/orange

Screenshots

安装说明

安装OpenResty1.9.7.3+

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

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

yum install libuuid-devel

安装Orange

git clone https://github.com/sumory/orange
cd 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

访问 http://localhost:9999/orange/dashboard/

特别注意

现实中由于用户的业务系统多种多样,对于复杂应用,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一起发布。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39261.html

相关文章

  • 个推基于Docker和Kubernetes微服务实践

    摘要:个推针对服务场景,基于和搭建了微服务框架,提高了开发效率。三容器化在微服务落地实践时我们选择了,下面将详细介绍个推基于的实践。 2016年伊始Docker无比兴盛,如今Kubernetes万人瞩目。在这个无比需要创新与速度的时代,由容器、微服务、DevOps构成的云原生席卷整个IT界。个推针对Web服务场景,基于OpenResty和Node.js搭建了微服务框架,提高了开发效率。在微服...

    yibinnn 评论0 收藏0
  • 个推基于Docker和Kubernetes微服务实践

    摘要:个推针对服务场景,基于和搭建了微服务框架,提高了开发效率。三容器化在微服务落地实践时我们选择了,下面将详细介绍个推基于的实践。 2016年伊始Docker无比兴盛,如今Kubernetes万人瞩目。在这个无比需要创新与速度的时代,由容器、微服务、DevOps构成的云原生席卷整个IT界。个推针对Web服务场景,基于OpenResty和Node.js搭建了微服务框架,提高了开发效率。在微服...

    genefy 评论0 收藏0
  • 企业对API网关怎么应用与选择

    摘要:而当企业只是将系统与系统之间的调用使用的方式进行访问时使用网关对调用进行管理,那么网关起到的就是服务治理的作用。另外很多企业因为自身信息安全的原因,不能使用外网公有网的网关服务,这样就只有选择私有云的方案了。 showImg(https://segmentfault.com/img/bVbsVBA?w=255&h=255); 前言 「 API网关 」是任何微服务架构的重要组成部分。有了...

    wuaiqiu 评论0 收藏0
  • 微服务网关方案调研

    摘要:综述经调研,使用解决方案的占多数,已经能满足绝大多数公司需求。但除了一些超级公司外,比如阿里,京东,他们是自己撸的一套网关。 综述 经调研,使用Spring Cloud Zuul解决方案的占多数,已经能满足绝大多数公司需求。但除了一些超级公司外,比如阿里,京东,他们是自己撸的一套网关。此外,点评直接采用的nginx负载均衡前置网关,而没用第七层网关,原因据说是七层网关会影响性能,但由于...

    Y3G 评论0 收藏0
  • 微服务之分布式文件系统

    摘要:于是便诞生了随行付分布式文件系统简称,提供的海量安全低成本高可靠的云存储服务。子系统相关流程图如下核心实现主要为随行付各个业务系统提供文件共享和访问服务,并且可以按应用统计流量命中率空间等指标。 背景 传统Web应用中所有的功能部署在一起,图片、文件也在一台服务器;应用微服务架构后,服务之间的图片共享通过FTP+Nginx静态资源的方式进行访问,文件共享通过nfs磁盘挂载的方式进行访问...

    stormjun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<