orange原理以及使用

May 21, 2019

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这个变量的值。 location 通过规则匹配来赋值给ngx.upstream_url这个变量,然后通过执行proxy_pass $upstream_url;这个方法就可以实现页面配置来进行转发。 code arch

Orange 扩展

Q&A

再生产中遇到的问题

  • 容器部署多个orange,共用一个数据库时会出现节点缓存问题,基于swarm编排容器。
  • 添加规则出现uuid重复,这是因为uuid这个库在容器中生成了冲突,所以需要提花一个包,这个问题在issues中提到过。

LRF 记录学习、生活的点滴