我开发了一个代理服务器,性能和 Nginx 差不多。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lsk569937453
V2EX    分享创造

我开发了一个代理服务器,性能和 Nginx 差不多。

  •  2
     
  •   lsk569937453 2023-04-04 17:15:39 +08:00 7052 次点击
    这是一个创建于 921 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址

    特点

    • 速度快,性能测试在这里。性能测试条件是在 Docker Swarm 中,使用 Docker Compose 部署服务(代理+后端+压测工具),同时限制服务使用的 cpu 和内存(目前的限制是 4 核 cpu 和 8G 内存)。

    • 通过 Rest Api 实时修改配置(5 秒内生效)。

    • 涵盖了 Api 网关的所有功能(IP 黑白名单 /授权 /熔断,限流 /路由 /负载均衡)。

    • 通过 Rust 语言开发,理论上支持所有平台。

    • 用户界面友好(此处有吹牛嫌疑),docker 容器下[代理+控制面]一键启动,docker-compose.yaml 文件在这里

    性能测试图

    防止有些大佬们看不到性能对比图,直接把图贴在下面了。
    ps:我也不知道为什么 Caddy 性能差这么多。Caddy 的配置在这里

    Results using Hey

    alt tag alt tag

    alt tag

    附加

    界面有点丑陋,毕竟不是专业前端,请轻拍!

    希望路过的大佬们,给个 star 吧!

    第 1 条附言    2023-04-04 23:29:52 +08:00

    感谢大佬们的鼓励,加油还有star!

    27 条回复    2023-09-13 13:19:30 +08:00
    mdgwmt0
        1
    mdgwmt0  
       2023-04-04 19:55:53 +08:00 via iPhone
    加油
    privil
        2
    privil  
       2023-04-04 19:59:23 +08:00
    rust 写的,流弊啊
    creanme
        3
    creanme  
       2023-04-04 20:09:09 +08:00
    牛逼啊
    CloudPtX
        4
    CloudPtX  
       2023-04-04 20:40:42 +08:00
    zthxxx
        5
    zthxxx  
       2023-04-04 21:20:11 +08:00
    nginx 配置复杂,caddy 性能烂爆,天下苦轻量级代理久已
    scyuns
        6
    scyuns  
       2023-04-04 21:23:48 +08:00 via Android
    厉害,请问 128m 小内存机器可以使用吗
    billzhuang
        7
    billzhuang  
       2023-04-04 21:38:28 +08:00 via iPhone
    nginx health check 是个渣,envoy 配置太复杂。

    你这个 health check 做的如何?名字有点长
    HaneRo
        8
    HaneRo  
       2023-04-04 21:40:33 +08:00 via Android
    抽空把梯子的 Nginx 换成这个试试
    rockagen
        9
    rockagen  
       2023-04-04 21:56:13 +08:00   2
    历史一直在轮回啊,每过一段时间都会有萌新冒出来脚踩 Nginx 哈哈,但凡多支持几个功能再来打擂台啊
    lessMonologue
        10
    lessMonologue  
       2023-04-04 22:11:31 +08:00
    我真的不觉得未来有什么东西能平替 nginx 的。无论性能和功能
    ISVStar
        11
    ISVStar  
       2023-04-04 23:06:49 +08:00
    @lsk569937453 能加一下 HAProxy 的测试测试吗?
    lsk569937453
        12
    lsk569937453  
    OP
       2023-04-04 23:38:08 +08:00
    @scyuns 这是我在单核 128MB 的 docker 上压测的结果。内存会有略微浮动。本身代理打包完就 20M 了。
    ![图片]( https://raw.githubusercontent.com/lsk569937453/image_repo/main/benchmark.gif)。
    后续可能参考这个 https://github.com/johnthagen/min-sized-rust 让最终的包大小小一些。
    sk569937453
        13
    lsk569937453  
    OP
       2023-04-04 23:40:25 +08:00
    @billzhuang 健康检查功能还在调研中。目前是打算参考 envoy 的主被动检查。
    lsk569937453
        14
    lsk569937453  
    OP
       2023-04-04 23:41:28 +08:00
    @ISVStar 等这个版本开发完会再做一次压测,不过应该是比不过 HAProxy 的。
    lsk569937453
        15
    lsk569937453  
    OP
       2023-04-04 23:41:49 +08:00
    @lessMonologue 梦想总是要有的,万一实现了呢?
    artnowben
        16
    artnowben  
       2023-04-05 07:52:01 +08:00
    nginx 的性能需要调,最好把 nginx 配置贴一下,测试工具也最好说明一下。
    dperf 可以测试 tcp, http 性能,不妨试一下。

    https://github.com/baidu/dperf
    artnowben
        17
    artnowben  
       2023-04-05 07:53:21 +08:00
    GPL license 不太友好,为啥不用 apache license 2 呢
    luckjoe680
        18
    luckjoe680  
       2023-04-05 09:30:30 +08:00 via Android
    不知道自动 https 能不能与 caddy 类似
    xyholic
        19
    xyholic  
       2023-04-05 10:13:07 +08:00
    得先改个单词的名字
    zoharSoul
        20
    zoharSoul  
       2023-04-05 12:21:04 +08:00
    能自动 https 吗?
    someonedeng
        21
    someonedeng  
       2023-04-05 17:55:44 +08:00
    先给大佬点个 star 了 哪天有用到可以考虑一下
    wbzd
        22
    wbzd  
       2023-04-05 22:02:09 +08:00 via Android
    https://github.com/lsk569937453/silverwind/blob/main/README-zh_CN.md#kong
    改个错别字:不得不,不是“不的不”。
    ()
    FreeEx
        23
    FreeEx  
       2023-04-06 17:27:00 +08:00
    建议参考这个博客的步骤重新进行测试

    https://blog.tjll.net/reverse-proxy-hot-dog-eating-contest-caddy-vs-nginx/
    Karmylr
        24
    Karmylr  
       2023-04-06 21:44:04 +08:00 via Android
    大佬牛逼
    fox233
        25
    fox233  
       2023-04-07 11:05:43 +08:00
    能加上 Traefik 测试吗?
    voiyy
        26
    voiyy  
       2023-04-09 21:01:14 +08:00
    梯子用的 lighttpd,不到 10M 内存
    ShuA1
        27
    ShuA1  
       2023-09-13 13:19:30 +08:00
    caddy 性能差是因为他的插件机制
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3663 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 00:14 PVG 08:14 LAX 17:14 JFK 20:14
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86