Tengine淘宝开源Web服务器课件

上传人:磨石 文档编号:240738229 上传时间:2024-05-04 格式:PPTX 页数:41 大小:787.23KB
返回 下载 相关 举报
Tengine淘宝开源Web服务器课件_第1页
第1页 / 共41页
Tengine淘宝开源Web服务器课件_第2页
第2页 / 共41页
Tengine淘宝开源Web服务器课件_第3页
第3页 / 共41页
点击查看更多>>
资源描述
Tengine打造高效、稳定、安全、易用的平台姚伟斌(文景)代讲朱照远(叔度)2012-10-20Tengine淘宝开源Web服务器大纲背景介绍应用案例分析开发与定制当前工作Tengine淘宝开源Web服务器1、背景介绍Tengine淘宝开源Web服务器Nginx简介Web服务器、HTTP反向代理和邮件代理服务器俄罗斯程序员Igor Sysoev于2002年开始全球使用量排名第三2011年成立商业公司特点性能非常高资源占用(CPU、内存)非常节省内存池设计,非常稳定高度模块化,易于扩展Tengine淘宝开源Web服务器淘宝网使用Nginx的过程2009年开始使用和探索2010年开始开发大量模块通用的业务的2011年开始修改Nginx的核心代码启动Tengine项目并开源2012年Apache全部替换为TengineTengine淘宝开源Web服务器淘宝网应用Nginx的收益业务更加稳定Nginx大连接数目支持非常好Nginx本身的内存占用很少,不会吃swap业务性能更高QPS比Apache要好节省机器数目基于Nginx的模块性能往往是之前业务的数倍有效抵御DDOS攻击Tengine淘宝开源Web服务器2、应用案例分析Tengine淘宝开源Web服务器Web接入层Nginx的职能SSL卸载七层接入管理安全防御负载均衡灰度发布静态资源Nginx 组1Nginx 组2Nginx 组3App1App1App2App3App4App5LVS集群Tengine淘宝开源Web服务器动态内容的静态化Nginx 组1Nginx 组2Nginx 组3AppAppLVS集群Cache组2Cache组3Cache组1AppAppAppAppCache checker把所有能cache的内容都cache住主动删除cacheTengine淘宝开源Web服务器大用户群消息推送Comet服务架构部署容量60万连接/台运行数据30万连接/台Tengine淘宝开源Web服务器日志收集与统计系统功能(可看成私有的Google Analytics)JavaScript埋点收集日志分析统计信息实现Nginx模块分布式传输系统Hadoop上运行MapReduce统计性能小几十台机器一天几十亿PV单机处理能力4万QPSTengine淘宝开源Web服务器RESTful接口层RESTful接口支持(准备开源)TFS分布式文件系统,类似于GFSTair分布式K/V存储系统简化应用开发可返回JSON格式直接让浏览器处理从而不必在服务器端渲染页面Tengine淘宝开源Web服务器分布式防攻击系统功能抵挡中小型的DDoS攻击可以封禁IP、Cookie限流提供验证码服务淘宝TMD(Taobao Missile Defense)系统Nginx作为防攻击系统的终端,实时发送日志给ServerTMD Server做策略分析TMD Console执行汇总和控制台Tengine淘宝开源Web服务器TMD系统架构图TMD ConsoleTMD ServerNginx TMD模块Nginx TMD模块TMD ServerNginx TMD模块Nginx TMD模块Tengine淘宝开源Web服务器3、开发与定制Tengine淘宝开源Web服务器动态加载模块Nginx核心代码静态编译功能模块动态编译成so文件./dso_tool-add-module=/path/to/lua-nginx-module好处核心模块跟功能模块去耦合,不必一起编译对于包管理系统来说,不再需要N多包修正某个模块,只需编译相应模块Tengine淘宝开源Web服务器动态加载模块使用使用方法dso load ngx_http_lua_module.so;load ngx_http_memcached_module.so;动态库比静态代码性能差?Wangbin:Tengine淘宝开源Web服务器ngx_lua模块思想引进动态脚本语言LuaLua语言强大且简单适合嵌入支持协程(coroutine)价值用同步的语义来实现异步的调用Tengine淘宝开源Web服务器ngx_lua原理每个Nginx工作进程使用一个Lua VM,工作进程内所有协程共享VM每个外部请求都由一个Lua协程处理,协程之间数据隔离Lua代码调用I/O操作接口时,若该操作无法立刻完成,则打断相关协程的运行并保护上下文数据I/O操作完成时还原相关协程上下文数据并继续运行Tengine淘宝开源Web服务器ngx_lua原理Tengine淘宝开源Web服务器代码示例location/http_clientproxy_pass$arg_url;location/web_iconvcontent_by_lualocalfrom,to,url=ngx.var.arg_f,ngx.var.arg_t,ngx.var.arg_ulocaliconv=requireiconvlocalcd=iconv.new(toorutf8,fromorgbk)localres=pture(/http_client?url=.url)ifres.status=200thenlocalostr,err=cd:iconv(res.body)ngx.print(ostr)elsengx.say(erroroccured:rc=.res.status)end;Tengine淘宝开源Web服务器组合JavaScript和CSS文件Yahoo!前端优化第一条原则Minimize HTTP Requests减少三路握手和HTTP请求的发送次数淘宝CDN comboconcat模块将多个JavaScript、CSS请求合并成一个Pagespeed?自动优化,结合cache,效果显著Tengine淘宝开源Web服务器淘宝CDN Combo的使用以两个问号(?)激活combo特性多个文件之间用逗号(,)分开用一个?来表示时间戳突破浏览器缓存例子?s/kissy/1.1.6/kissy-min.js,p/global/1.0/global-min.js,p/et/et.js?t=20301.jsTengine淘宝开源Web服务器系统过载保护判断依据系统的loadavg内存使用(swap的比率)sysgurad模块可定制保护页面sysguard on;sysguard_load load=4 action=/high_load.html;sysguard_mem s=10%action=/mem_high.htmlTengine淘宝开源Web服务器多种日志方式本地和远程syslog支持管道支持抽样支持减少写日志的数量,避免磁盘写爆access_log syslog:user:info:127.0.0.1:514 combined;access_log pipe:/path/to/cronolog combined;access_log/path/to/ratio=0.01;Tengine淘宝开源Web服务器CPU亲缘性设置的简化使用对比#standard nginxworker_processes 8;worker_cpu_affinity00 00001000 00010 01000#tengineworker_processes auto;worker_cpu_affinityauto;Tengine淘宝开源Web服务器user_agent模块功能:将浏览器、爬虫匹配成变量实现Trie树匹配,O(n)复杂度Nginx的browser模块算法复杂度O(n 3)不灵活,没有版本匹配Tengine淘宝开源Web服务器对Nginx的limit_req增强白名单支持指定跳转页面支持同一个location下多limit_req支持location/limit_req zone=one burst=5;limit_req zone=two forbid_action=test1;limit_req zone=three burst=3 forbid_action=test2;location/off limit_req off;location test1 rewrite /test1.html;location test2 rewrite /test2.html;Tengine淘宝开源Web服务器主动健康检查心跳检查,发现后端服务器失效的响应快L7检查使上线下线很方便后端server的状态监控页面:HTML/JSON/CSV格式可检查多种后端服务器HTTP/HTTPSAJPMySQLTengine淘宝开源Web服务器输入体过滤器(input body filter)目的是做安全过滤如防hashdos攻击防SQL注入防XSS标准Nginx无输入体过滤器机制的问题如果所有POST内容都在内存中,占用内存过大否则性能不高,内容可能被buffer到磁盘例子(防hashdos攻击)Tengine淘宝开源Web服务器Tengine中命令行参数的增加列出已经编译的模块nginx-m列出支持的指令nginx-l输出配置文件的全部内容nginx-d支持include的内容Tengine淘宝开源Web服务器Nginx监控增强可集成到统计工具如Cacti中Tengine增加响应时间统计Tengine淘宝开源Web服务器实时监控工具Tsartsar-nginxTengine淘宝开源Web服务器其他Slice模块SSL的key加密(dialog)Jemalloc库的支持崩溃时打印堆栈更多内容请参考:Tengine淘宝开源Web服务器4、当前工作Tengine淘宝开源Web服务器即将发布的功能Timer优化:红黑树-四叉最小堆防慢攻击支持一致性hash模块Session sticky模块更强的统计模块Tengine淘宝开源Web服务器正在开发中的功能上传buffer机制改进避免将文件缓存到磁盘文件Nginx的远程管理工具,包括监控,远程控制,配置同步等功能Pagespeed模块移植Tengine淘宝开源Web服务器关于Tengine的后续发展国内多个公司在使用tengine:土豆、56、PPTV、小米同多个公司合作开发:CloudFlare、搜狗、网易、去哪儿开发过程已经完全透明化github 上面通过pull request进行代码review社区化发展Tengine淘宝开源Web服务器与Nginx官方协同发展与Nginx进行合作,翻译Nginx中文文档,征求志愿者为Nginx提供若干bugfix内部测试SPDY协议写一本Nginx的书籍:Nginx开发从入门到精通Tengine淘宝开源Web服务器参考资源本演示稿中涉及的大部分技术已经开源:Tengine淘宝开源Web服务器Thank You!Q&ATengine淘宝开源Web服务器
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!