Orange是一个基于OpenResty的API网关。除Nginx的基本功能外,它还可用于API监控、访问控制(鉴权、WAF)、流量筛选、访问限速、AB测试、动态分流等。它有以下特性:
--with-http_stub_status_module
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相关配置,请自行检查并按照实际需要更改或添加配置,特别注意以下几个配置:
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 Gateway
stop Stop current Orange
reload Reload the config of Orange
restart Restart Orange
store Init/Update/Backup Orange store
version Show the version of Orange
help Show help tips
Orange启动成功后, dashboard和API server也随之启动:
http://localhost:9999
访问7777
端口监听,如不需要API Server可删除nginx.conf里对应的配置https://store.docker.com/community/images/syhily/orange 由@syhily维护.
Orange的插件设计参考自Kong.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型