V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lsk569937453
V2EX  ›  分享创造

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

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

    项目地址

    特点

    • 速度快,性能测试在这里。性能测试条件是在 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 让最终的包大小小一些。
    lsk569937453
        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  
       219 天前
    caddy 性能差是因为他的插件机制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5333 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 09:06 · PVG 17:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.