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

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

  •  2
     
  •   lsk569937453 · 241 天前 · 5671 次点击
    这是一个创建于 241 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址

    特点

    • 速度快,性能测试在这里。性能测试条件是在 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 条附言  ·  241 天前

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

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

    你这个 health check 做的如何?名字有点长
    HaneRo
        8
    HaneRo  
       241 天前 via Android
    抽空把梯子的 Nginx 换成这个试试
    rockagen
        9
    rockagen  
       241 天前   ❤️ 2
    历史一直在轮回啊,每过一段时间都会有萌新冒出来脚踩 Nginx 哈哈,但凡多支持几个功能再来打擂台啊
    lessMonologue
        10
    lessMonologue  
       241 天前
    我真的不觉得未来有什么东西能平替 nginx 的😂。无论性能和功能
    ISVStar
        11
    ISVStar  
       241 天前
    @lsk569937453 能加一下 HAProxy 的测试测试吗?
    lsk569937453
        12
    lsk569937453  
    OP
       241 天前
    @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
       241 天前
    @billzhuang 健康检查功能还在调研中。目前是打算参考 envoy 的主被动检查。
    lsk569937453
        14
    lsk569937453  
    OP
       241 天前
    @ISVStar 等这个版本开发完会再做一次压测,不过应该是比不过 HAProxy 的。
    lsk569937453
        15
    lsk569937453  
    OP
       241 天前
    @lessMonologue 梦想总是要有的,万一实现了呢?
    artnowben
        16
    artnowben  
       241 天前
    nginx 的性能需要调,最好把 nginx 配置贴一下,测试工具也最好说明一下。
    dperf 可以测试 tcp, http 性能,不妨试一下。

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

    https://blog.tjll.net/reverse-proxy-hot-dog-eating-contest-caddy-vs-nginx/
    Karmylr
        24
    Karmylr  
       239 天前 via Android
    大佬牛逼
    fox233
        25
    fox233  
       239 天前
    能加上 Traefik 测试吗?
    voiyy
        26
    voiyy  
       236 天前
    梯子用的 lighttpd,不到 10M 内存
    ShuA1
        27
    ShuA1  
       80 天前
    caddy 性能差是因为他的插件机制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2526 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:39 · PVG 13:39 · LAX 21:39 · JFK 00:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.