V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firebroo
V2EX  ›  程序员

nginx 配置管理工具

  •  
  •   firebroo ·
    firebroo · 2019-02-26 10:28:44 +08:00 · 5159 次点击
    这是一个创建于 2095 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个 agent 的使用场景是 nginx 作为纯反向代理服务器时候,方便实现运维人员自动化运维 nginx 配置。

    起因

    调查过市面 nginx 的配置管理,发现都无法满足我自己的需求,也不想在别人代码基础上二次开发,于是就自己掳了一个。

    优势

    下面说说我个人感觉还可以的地方

    1. 支持 API 管理操作配置的同时支持运维人员上服务器手工介入修改配置,这两种方式的配置实现自动同步。
    2. 轻量级,开 1 个进程 worker,几千个配置也就不到 10M 内存占用,部署方便,就一个配置文件和一个 bin,静态编译之后是无依赖的。
    3. 支持 nginx 集群配置管理,配置变更之后会体现在 API 的状态上,只需使用一个简单的脚本去探测状态就可以实现集群配置的同步。
    4. 向下兼容历史配置,可能别的配置工具在已有大量配置的时候去上线介入会导致冲突问题。
    5. 每一次的操作都会落地到 nginx 的配置文件,reload 之前会检查 nginx 健康状况,是操作安全的,因为内存和配置原因,我自己运维的 nginx 不能频繁的 reload nginx,每次 reload 残留的 shutdown nginx 进程会占用大量内存。
    6. 代码很多参考了 nginx 源码,想学习 nginx 这种多进程网络服务模型架构是如何实现的可以看看,包括进程之间数据同步,主进程处理信号,管理子进程等多进程方面的知识,不过我也是半吊子水平,可以一起交流哈。

    最后

    我部署的服务器已经稳定运行一段时间了,感觉还是比较稳定的,欢迎大家提 issue。

    地址: https://github.com/firebroo/nginx-confd

    7 条回复    2019-02-26 14:46:31 +08:00
    yepinf
        1
    yepinf  
       2019-02-26 11:00:04 +08:00
    已经 star

    有没有交流群,想学学运维技术
    abmin521
        2
    abmin521  
       2019-02-26 12:17:28 +08:00 via Android
    我还以为是 etcd + confd lua 似乎有这种扩展吧 weibo qcloud
    CHYK
        3
    CHYK  
       2019-02-26 12:20:59 +08:00
    为嘛不留下邮箱呢?
    感觉可以邮件多交流呀。
    shell314
        4
    shell314  
       2019-02-26 12:22:12 +08:00 via Android
    很方便,已 star
    firebroo
        5
    firebroo  
    OP
       2019-02-26 13:50:03 +08:00
    @CHYK 邮箱 MTEyMTkyNzk5MkBxcS5jb20=
    @yepinf 有点运维的工作,但是我不是运维。。
    kylix
        6
    kylix  
       2019-02-26 14:33:09 +08:00
    不错,mark 一波
    CallMeReznov
        7
    CallMeReznov  
       2019-02-26 14:46:31 +08:00
    点赞了!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1312 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 23:40 · PVG 07:40 · LAX 15:40 · JFK 18:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.