
1 Powered 2017-01-10 08:57:18 +08:00 via iPhone 给出一个自己的方案。 java 先解析 nginx 的 conf ,监听 zookeeper ,动态修改 conf 文件。 也就是利用了 zookeeper 自带的通知功能,用 java 桥接了 zookeeper 和 nginx 配置文件。 |
2 gaodq 2017-01-10 09:05:38 +08:00 可以试一下 QConf , https://github.com/Qihoo360/Qconf ,一个分布式配置管理系统 |
3 hokerlinux OP @Powered 感谢您的回复,但我还是想用最直接方式去做,不然我就用 bash shell 了,而且我只会 c 不会 java |
4 hokerlinux OP @gaodq 感谢回复,其实我是想实现 后台 http 的 API 注册, nginx 发现该 API ,并及时更新 upstrem ,是不是有点异想天开^^ |
5 gaodq 2017-01-10 09:15:07 +08:00 @hokerlinux 没太看明白 2333 , QConf 是从 zookeeper 动态获取配置,然后对外提供接口获取最新配置,感觉跟你需求有点像就推荐了:) |
6 hokerlinux OP 主要是看到国外有人这么做,想挑战一下,提升技能,一直想了解 nginx 开发,再一个跟上级承诺了, |
7 hokerlinux OP @gaodq 仍然感谢 |
8 defunct9 2017-01-10 09:22:00 +08:00 有用 kazoo 、 java 的, c 写就比较重了,因为本身 zookeeper 是 Java 的。且这个场景不太适合,你写就明白了。得在 zookeeper 上挂钩子,还需要动态更新 nginx |
9 bzzhou 2017-01-10 09:28:04 +08:00 赞同 @Powered 的方案,可以参考 consul2template ,非常简单可靠 直接在 nginx 内部实现,要考虑的细节就会多很多,从工程收益来说,不划算。 |
10 cloverstd 2017-01-10 09:30:01 +08:00 via iPhone 指个歪路,可以参考 bamboo |
11 hokerlinux OP @defunct9 感谢回复,我已经了解了一些, zookeeper 有 c 语言的客户端 API ,并写了简单的 c 的测试程序,利用它的这个 API , c 写起来也不是很麻烦,只是看怎么把这个客户端程序融合为 nginx 的模块 |
12 Allianzcortex 2017-01-10 09:31:01 +08:00 内部用 bash 来调自带的四字命令? |
13 hokerlinux OP |
14 hokerlinux OP @Allianzcortex 不懂 |
15 janxin 2017-01-10 09:43:52 +08:00 nginx plus 提供微服务动态管理功能吧,这类肯定可以实现的 |
16 hokerlinux OP @janxin 感谢回复,正是看到 nginx plus 可以实现又要收费,才想自己实现的,但自己又没做过 nginx 的开发 |
17 rrfeng 2017-01-10 09:55:33 +08:00 via Android 这个要看什么配置参数。 upstream 的话有一大把方案,但是基于 zk 的比较少。 很多其他配置并没有 Nginx API 可以修改所以不能动态。 我有一个 etcd 的你要不要试试 |
18 djx339 2017-01-10 10:02:41 +08:00 推荐 confd, 写个配置文件和模板就能满足你的需求, 可以参考 https://github.com/kelseyhightower/confd/blob/master/docs/quick-start-guide.md#create-template-resources |
19 dndx 2017-01-10 10:04:41 +08:00 via iPhone OpenResty + balancer_by_lua 基本可以达到你的要求。 |
20 hokerlinux OP @rrfeng 主要是用于发现需要反向代理的 http API ,即 upstrem 的那些地址,这些后台也会注册自己的接口,如果方便,发一份 etcd 的实现到 [email protected] ,我参考一下,非常感谢 :) |
21 hokerlinux OP |
22 hokerlinux OP @rrfeng 请问 upstrem 配置的后台地址可以动态修改吗? |
23 hokerlinux OP @rrfeng 哦,看懂了,你的意思是可以得 |
24 mingyi0 2017-01-10 10:25:03 +08:00 可以看看 nginx upsync |
25 hokerlinux OP @mingyi0 好的,谢谢 |
26 rrfeng 2017-01-10 14:31:38 +08:00 |
27 hokerlinux OP @rrfeng 嗯,主要是向高手学习 :) |