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

VeryNginx 新功能预告

  •  
  •   AlexaZhou ·
    alexazhou · 2016-02-18 23:40:02 +08:00 · 3879 次点击
    这是一个创建于 3230 天前的主题,其中的信息可能已经有所发展或是发生改变。

    介绍

    为 VeryNginx 开发了新的自定义动作模型,目前已经完成了前端的规则编辑器部分,剩下 Lua 部分还没完成,快的话差不多周日晚上可以和大家见面

    现状

    当前版本的 VeryNginx 可以配置一些自定义动作,例如

    • 根据 URI 进行重定向
    • 根据参数对请求进行过滤
    • 根据 URI 对请求进行过滤
    • 根据 IP 对请求进行过滤
    • 根据 UserAgent 对参数进行过滤

    这样进行配置有一些限制,例如并不能根据多个条件并列进行过滤,不能根据域名进行重定向等等...

    改进

    这次设计了新的自定义动作模型,由 Matcher 和 Action 组成。 Matcher 用来对请求进行匹配, Action 为要执行的动作。新结构的优势在于把所有的前置判断整合在一起来实现了,使复杂(组合)规则的实现变成了可能

    Matcher

    一个 Matcher 用来判断一个 Http 请求是否符合指定的条件, 一个 Matcher 可以包含一个或者多个约束条件,目前支持以下几种约束:

    • 源 IP
    • Domain
    • UserAgent
    • URI

    当一个请求满足了 Matcher 中包含的全部条件时,即命中了这个 Matcher

    Action

    每个 Action 会引用一个 Matcher ,当 Matcher 满足时, Action 会被执行

    新版本包含以下 Action

    • Scheme Lock 将访问协议锁定为 Https 或者 Http
    • Redirect 对请求进行重定向
    • URI Rewrite 对请求的 URI 进行内部重写
    • Filter 过滤器

    其中 Filter 整合了原来的白名单和 waf 功能,可以实现更复杂的组合规则

    结束

    后续还会在这个框架中,继续添加更多的 Action 。目前访问频率限制已经排在计划中了,大家需要什么 Action ,也欢迎提出来

    至于能用来干什么,看大家发挥啦~

    第 1 条附言  ·  2016-02-19 00:28:49 +08:00
    第 2 条附言  ·  2016-02-22 00:30:10 +08:00
    已经发布 V0.2-beta1 版本,新功能全部实现...
    欢迎测试😈
    11 条回复    2016-02-20 16:20:18 +08:00
    tSQghkfhTtQt9mtd
        1
    tSQghkfhTtQt9mtd  
       2016-02-18 23:59:00 +08:00   ❤️ 1
    吼啊,资辞
    为什么不把 C 重构的计划也说出来
    Strikeactor
        2
    Strikeactor  
       2016-02-19 00:00:12 +08:00   ❤️ 1
    资瓷啊
    这个项目, excited !
    AlexaZhou
        3
    AlexaZhou  
    OP
       2016-02-19 00:00:38 +08:00
    @liwanglin12

    让我们一步步向前走,先把基本功能做好了...
    kn007
        4
    kn007  
       2016-02-19 07:41:21 +08:00
    赞。
    kmahyyg
        5
    kmahyyg  
       2016-02-19 09:36:04 +08:00   ❤️ 1
    问下, ram 占用怎样?准备上了,小鸡可以不?
    holyghost
        6
    holyghost  
       2016-02-19 09:57:18 +08:00   ❤️ 1
    资瓷!
    AlexaZhou
        7
    AlexaZhou  
    OP
       2016-02-19 10:55:14 +08:00
    @kmahyyg

    和 Nginx 官方版本相比,多了个 Lua 解释器,另外使用了 21M 的共享内存,并没有哪儿用到大内存

    在我本地用作反向代理的情况下,大概占用不到 100M

    要注意的是,如果连接数目大,或者使用了缓存
    AlexaZhou
        8
    AlexaZhou  
    OP
       2016-02-19 10:58:14 +08:00
    @kmahyyg

    接上一条

    要注意的是,如果连接数目大,或者使用了缓存的情况下, Nginx 也会使用更多的内存
    aitaii
        9
    aitaii  
       2016-02-19 20:53:41 +08:00 via Android
    找了一下午 搜 Nginx 没有搜出来 看见了
    canglaoshi
        10
    canglaoshi  
       2016-02-20 11:31:02 +08:00
    能不能加一个防御 ddos , cc 的的功能,简单的说就是当一个攻击 ip 请求到达 100 个,就自动返回 403.
    AlexaZhou
        11
    AlexaZhou  
    OP
       2016-02-20 16:20:18 +08:00
    @canglaoshi

    可以的,已经在排着啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4102 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:20 · PVG 13:20 · LAX 21:20 · JFK 00:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.