淘宝开源Tengine:打造高效Web服务器

5星 · 超过95%的资源 需积分: 10 12 下载量 8 浏览量 更新于2024-07-25 收藏 1.3MB PPT 举报
"Tengine是淘宝基于Nginx进行二次开发的一个开源Web服务器项目,旨在打造高效、稳定、安全和易用的平台。该项目由姚伟斌(文景)和朱照远(叔度)在2012年10月20日的演讲中介绍,主要涵盖了背景、应用案例分析、开发与定制以及当时的工作进展等内容。Tengine在淘宝的使用极大地提升了业务的稳定性和性能,同时有效抵御了DDoS攻击。" **1、Nginx基础与Tengine的诞生** Nginx是一款由俄罗斯程序员Igor Sysoev在2002年创建的Web服务器,它同时具备HTTP反向代理和邮件代理服务器的功能。由于其高性能、低资源占用和模块化设计,Nginx在全球范围内广泛应用,排名第三。2011年,Nginx成立了商业公司。 淘宝网自2009年开始使用和探索Nginx,到2010年,开发了大量通用和业务相关的模块。2011年,随着对Nginx核心代码的修改,淘宝启动了Tengine项目,并将其开源。2012年,淘宝的Apache服务器全部被Tengine替代。 **2、淘宝使用Nginx与Tengine的收益** - **业务稳定性**:Nginx的大连接数支持良好,内存占用低,避免了吃swap,从而增强了系统的稳定性。 - **业务性能提升**:与Apache相比,Nginx的QPS更高,所需机器数量减少,且业务模块性能通常有显著提升,有助于抵御DDoS攻击。 **3、应用案例分析** - **Web接入层**:Nginx负责SSL卸载、七层接入管理、安全防御、负载均衡、灰度发布和静态资源处理。通过多组Nginx服务器和LVS集群,实现高可用性和负载分布。 - **动态内容静态化**:Nginx组将动态内容转化为静态,配合多组Cache服务器,提高响应速度和减少后端压力。 - **大用户群消息推送**:采用Comet服务架构,单台服务器可支持60万连接,实际运行时处理30万连接,实现了大规模的消息推送能力。 - **日志收集与统计系统**:通过Nginx模块收集JavaScript埋点的日志,使用分布式传输系统将数据发送到Hadoop进行MapReduce统计,单机处理能力高达4万QPS。 **4、开发与定制** Tengine作为Nginx的增强版,主要针对大型电商网站的需求进行了优化,增加了如动态脚本支持、访问控制、防盗链、压力测试等功能,更适合处理高并发、大数据量的场景。淘宝的开发团队对Nginx核心代码的修改和扩展,使得Tengine成为了更适应淘宝业务特性的服务器解决方案。 总结,Tengine是针对Nginx进行深度定制的开源Web服务器,特别适合处理大规模的电商网站流量,通过其高效的性能、稳定性和丰富的定制功能,满足了淘宝等大型互联网企业的需求。