• 淘宝的Tengine都改了什么


    Tegine logoTengine是由淘宝Servers Platform Team基于Nginx修改的一个服务器,中午趁着大家都在睡觉,粗粗地拿了代码看下都修改了哪些东西。个人认为里边比较有用的修改是input filter和sysguard,由于只是粗看,没有留意细节,可能有错漏。以下是分代码目录的修改记录笔记:

     
    0. others
    1) 配置默认值的修改ON->OFF之类的
    2) bug/logic相关的修改,还细看就不细说了。
     
    1. core
    1) 增加configure的dump
    2) 增加一此log方式或方法
    3) 增加内存池管理realloc
    4) 增加字符串处理ngx_atoll,修改unescape_uri以支持www的form
    5) 增加log的另一种时间格式
     
    2. event
    1) 增加统计信息request_time
    2) 修改/增加ssl加密方式
     
    3. http
    1) 增加input filter
    2) 增加server tag用于response中Server这个header的设置,还有admin/info等用于修改一些页面信息-_-
     
    4. http/module
    1) 增加ngx_http_concat_module模块,用于多个静态文件的合并返回
    2) 增加ngx_http_footer_filter_module模块,用于在末尾插入一段东西
    3) 修改ngx_http_headers_filter_module模块,按type设置expire time
    4) 修改ngx_http_limit_req_module模块,增加白名单,规则似乎也有修改
    5) 修改ngx_http_stub_status_module模块,记录request time
    6) 增加ngx_http_sysguard_module模块,用于在cpu/mem资源不足时,报警并执行action(可认为主动拒绝服务)
     
    5. misc
    1) 增加ngx_backtrace_module打印堆栈信息,便于与signal相关(SIGXXX)出错时的问题定位。
     
    6. os
    1) 增加realloc
    2) 增加了pipe
    3) 增加ngx_syslog_module,用于向syslog日志服务器写日志
    4) 增加了cpu/mem的信息获取方法
     
    7. mail
    没管
     

    2012-02-14 UPDATE:
    关于ngx_syslog,因为我们也有类似的需求(但不是针对syslog服务),自己此前想过这个功能的实现,看了下Tengine发现与我要求的还有不同:该功能是同步阻塞的,发送出错也是直接失败,这些应该可以改进,比如异步,非阻塞,出错时区分中断、阻塞或其他错误等。
  • 相关阅读:
    主线程 Looper.loop() 死循环为何不会ANR
    AIDL实例
    AIDL 的工作原理
    Flutter文本框TextField
    原理
    linux安装mysql可视化界面
    MySQL Workbench gnome-keyring-daemon错误的解决
    linux安装mysql以及修改密码和重启mysql等相关命令
    linux安装vlc视频播放器
    centos调整屏幕亮度
  • 原文地址:https://www.cnblogs.com/sunyongyue/p/tengine_modify_log.html
Copyright © 2020-2023  润新知