Orange 工具介绍
`Orange`是一个基于`OpenResty`的页面化的网关,提供了页面化的分流规则配置和权限配置。工具更多的信息参考设计文档和源代码。
Orange 使用
使用文档参考官方文档 [http://orange.sumory.com/docs/](http://orange.sumory.com/docs/).
Orange 原理
orange
运行时更具nginx.conf
文件内容中的location
来进行匹配规则,通过nginx
的执行顺序可知,在access_by_lua_block
阶段就是为了通过分流规则来设置upstream_url
这个变量的值。
通过规则匹配来赋值给ngx.upstream_url
这个变量,然后通过执行proxy_pass $upstream_url;
这个方法就可以实现页面配置来进行转发。
Orange 扩展
Q&A
再生产中遇到的问题
- 容器部署多个
orange
,共用一个数据库时会出现节点缓存问题,基于swarm
编排容器。 - 添加规则出现
uuid
重复,这是因为uuid
这个库在容器中生成了冲突,所以需要提花一个包,这个问题在issues
中提到过。