0.15.0 2020-03-14 calvin
- 新增支持socgi,可以嵌入服务端应用逻辑了
- 新增支持socgi的rest层,支持开发RESTful风格的应用了
- 调整了目录文件架构,Dockerfile有待改写
——————————————————————————
2. 概述
hetao是一款国人原创研发的开源的C语言实现的支持高并发、超高性能Web服务器,使用高性能HTTP解析器fasterhttp作为其解析核心,在开启Keep-Alive和gzip压缩(现代浏览器默认开启)时性能比nginx约快3倍。如此高性能得益于轻巧的架构设计和采用Inotify文件变化主动通知缓存机制,把大量静态文件尽可能缓存在内存直接读取,比传统的轮询式检查文件机制避免了大量存储IO。
hetao的设计理念是快速、稳定和完整。没有完全采用apache或nginx纯模块化架构,因为大多数人使用webserver一般都会把所有模块都打上,除了动态内容模块(如mod_php),很少见到有人特意去组装模块,那还不如直接全部编译在一起算了,使用简单,避免了管理员或运维人员面对过多选择带来的学习成本。当你需要本地定制化时,直接改代码吧,因为它就是开源的嘛。hetao只有在动态内容上才设计了模块接口,以适应各种各样的语言架构和开发者。
2.1. hetao功能
- 支持主流操作系统Linux(基于epoll)、WINDOWS(基于IOCP)
- 支持HTTP/1.0、HTTP/1.1
- 支持通讯超时控制
- 支持多侦听端口
- 支持多虚拟主机
- 支持自定义错误页面
- 支持自定义缺省index文件
- 支持自适应Keep-Alive
- 支持自适应gzip、deflate压缩
- 支持HTTPS
- 支持反向代理负载均衡(目前支持轮询、最少连接数算法),支持HTTP与HTTPS互转
- 支持改写URI
- 支持重定向域名
- 支持优雅重启/重载配置,重启期间完全不中断对外服务
- 支持工作进程绑定CPU
- 支持进程崩溃后自动重启
- 支持搭载socgi应用
- 在socgi上搭载RESTful应用
2.2. hetao安全机制
- HTTP请求报文合法性校验
- HTTP报文最大请求头限制和最多请求头选项限制
- 活跃超时控制(防止僵尸连接)和累积超时控制(防止慢速攻击)
- 每个IP连接数限制
- 全局最大连接数限制
- 最大单个文件缓存大小
2.3. 选择hetao的理由
- hetao在Linux上的综合性能约比Nginx还要快三倍,尤其适合中小型静态文件
- hetao是众多开源Web服务器中在WINDOWS版本唯一全部采用IOCP模型。Apache的WINDOWS版本是传统的Leader-Follow多进程模型,Nginx则是多线程select模型(玩具?)
- hetao配置文件采用JSON标准格式,简洁易写,而且支持行注释和块注释。Apache配置格式比较复杂,Nginx配置格式多变怪异且不支持块注释
- hetao设计精炼,代码结构简洁易读,代码量小,易于改造
- hetao是中国国产原创,中文资料较多
- Linux版提供指定目录直接创建Web站点,WINDOWS版提供了右键目录直接创建Web站点,便于测试页面
- hetao提供了socgi层搭载应用动态库实现应用逻辑,并在socgi基础上实现了一个RESTful应用控制器
转自 https://www.oschina.net/news/114259/hetao-0-15-0-released