• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

orange: orange openrestry 网关

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

orange

开源软件地址:

https://gitee.com/githubsync/orange

开源软件介绍:

Orange

GitHub release license

中文 | English | Website

Orange是一个基于OpenResty的API网关。除Nginx的基本功能外,它还可用于API监控、访问控制(鉴权、WAF)、流量筛选、访问限速、AB测试、动态分流等。它有以下特性:

  • 提供了一套默认的Dashboard用于动态管理各种功能和配置
  • 提供了API接口用于实现第三方服务(如个性化运维需求、第三方Dashboard等)
  • 可根据规范编写自定义插件扩展Orange功能

使用

安装依赖

  • OpenResty: 版本应在1.9.7.3+
    • Orange的监控插件需要统计http的某些状态数据,所以需要编译OpenResty时添加--with-http_stub_status_module
    • 由于使用了*_block指令,所以OpenResty的版本最好在1.9.7.3以上.
  • lor框架
    • 若使用的Orange版本低于v0.6.2则应安装lor v0.2.*版本
    • 若使用的Orange版本高于或等于v0.6.2则应安装lor v0.3.0+版本
  • MySQL
    • 配置存储和集群扩展需要MySQL支持。从0.2.0版本开始,Orange去除了本地文件存储的方式,目前仅提供MySQL存储支持.

数据表导入MySQL

  • 在MySQL中创建数据库,名为orange
  • 将与当前代码版本配套的SQL脚本(如install/orange-v0.6.4.sql)导入到orange库中

修改配置文件

Orange有两个配置文件,一个是conf/orange.conf,用于配置插件、存储方式和内部集成的默认Dashboard,另一个是conf/nginx.conf用于配置Nginx(OpenResty).

orange.conf的配置如下,请按需修改:

{    "plugins": [ //可用的插件列表,若不需要可从中删除,系统将自动加载这些插件的开放API并在7777端口暴露        "stat",        "monitor",        "redirect",        "rewrite",        "rate_limiting",        "property_rate_limiting",        "basic_auth",        "key_auth",        "signature_auth",        "waf",        "divide",        "kvstore"    ],    "store": "mysql",//目前仅支持mysql存储    "store_mysql": { //MySQL配置        "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"    },    "dashboard": {//默认的Dashboard配置.        "auth": false, //设为true,则需用户名、密码才能登录Dashboard,默认的用户名和密码为admin/orange_admin        "session_secret": "y0ji4pdj61aaf3f11c2e65cd2263d3e7e5", //加密cookie用的盐,自行修改即可        "whitelist": [//不需要鉴权的uri,如登录页面,无需修改此值            "^/auth/login$",            "^/error/$"        ]    },    "api": {//API server配置        "auth_enable": true,//访问API时是否需要授权        "credentials": [//HTTP Basic Auth配置,仅在开启auth_enable时有效,自行添加或修改即可            {                "username":"api_username",                "password":"api_password"            }        ]    }}

conf/nginx.conf里是一些nginx相关配置,请自行检查并按照实际需要更改或添加配置,特别注意以下几个配置:

  • lua_package_path:需要根据本地环境配置适当修改,如lor框架的安装路径
  • resolver:DNS解析
  • 各个server或是location的权限,如是否需要通过allow/deny指定配置黑白名单ip

安装

如果使用的是v0.5.0以前的版本则无需安装, 只要将Orange下载下来放到合适的位置即可。

如果使用的是v0.5.0及以上的版本, 可以通过make install将Orange安装到系统中。 执行此命令后, 以下两部分将被安装:

/usr/local/orange     #orange运行时需要的文件/usr/local/bin/orange #orange命令行工具

启动

在v0.5.0以下版本中, 一个简单的shell脚本用来启动/重启orange, 执行sh start.sh即可。可以按需要仿照start.sh编写运维脚本, 本质上就是启动/关闭Nginx。

除此之外, 从v0.5.0开始, 如果执行过make install将Orange安装到系统后, 还可以通过orange命令来管理, 执行orange help查看有哪些命令可以使用:

Usage: orange COMMAND [OPTIONS]The commands are:start   Start the Orange Gatewaystop    Stop current Orangereload  Reload the config of Orangerestart Restart Orangestore   Init/Update/Backup Orange storeversion Show the version of Orangehelp    Show help tips

Orange启动成功后, dashboard和API server也随之启动:

  • 内置的Dashboard可通过http://localhost:9999访问
  • API Server默认在7777端口监听,如不需要API Server可删除nginx.conf里对应的配置

文档

Docker

https://store.docker.com/community/images/syhily/orange@syhily维护.

贡献者

See also

Orange的插件设计参考自Kong.

License

MIT


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap