编辑: 向日葵8AS 2016-06-22
淘宝网Nginx应用、定制不开发实战 朱照远(@淘叔度) 王晓哲(@chaoslawful) 2012-06-09 大纲 ? 背景介绍 ? 应用案例分析 ? 开发不定制 ? Web应用开发 ? 当前工作

1、背景介绍 Nginx简介 ? Web服务器、反向代理和邮件代理服务器 ? 俄罗斯程序员Igor Sysoev于2002年开始 ? 全球使用量排名第二 ? 2011年成立商业公司 ? 特点 C 性能非常高 C 资源占用(CPU、内存)非常节省 C 高度模块化,易于扩展 淘宝网使用Nginx的过程 ? 2009年开始使用和探索 ? 2010年开始开发大量模块 C 通用的 C 业务的 ? 2011年开始 C 修改Nginx的内核 C 启劢Tengine项目并开源 淘宝网应用Nginx的收益 ? 业务更加稳定 C Nginx大连接数目支持非常好 C Nginx本身的内存占用很少,更丌会吃swap ? 业务性能更高 C QPS比Apache要好 C 节省机器数目 C 基于Nginx的模块性能往往是Y前业务的数倍

2、应用案例分析 Web接入层 ? Nginx的职能 C 负载均衡 C SSL卸载 C 管理接口 C 安全防御 C 灰度发布 C 静态化 Nginx 组1 Nginx 组2 Nginx 组3 App

1 App

1 App

2 App

3 App

4 App

5 LVS集群 大用户群消息推送 ? Comet服务架构 ? 部署容量 C 60万连接/台?运行数据 C 30万连接/台 发布不A/B Testing ? 灰度发布 C 逐渐放量 C 方便的管理接口 ? 规则 C IP C Cookie C K/V存储 C … 日志收集不统计系统 ? 功能(可看成私有的Google Analytics) C JavaScript埋点 C 收集日志 C 分析统计信息 ? 实现 C Nginx模块 C 分布式传输系统 C Hadoop上运行MapReduce统计 ? 性能 C 小几十台机器一天几十亿PV C 单机处理能力4万QPS RESTful接口层 ? RESTful接口支持 C TFS ? 分布式文件系统,类似于GFS C Tair ? 分布式K/V存储系统 ? 简化应用开发 C 可返回JSON格式直接让浏览器处理 ? 从而丌必在服务器端渲染页面 分布式防攻击系统 ? 应对的问题 C 小型的DDoS攻击 C 恶意的爬虫 ? 为什么单机版还丌够 C 单机版无法知道全局 ? 淘宝TMD(Taobao Missile Defense)系统 C Nginx作为防攻击系统的终端 C TMD Server做策略分析 C TMD Console执行汇总和控制台 TMD系统架构图 TMD Console TMD Server Nginx TMD模块 Nginx TMD模块 TMD Server Nginx TMD模块 Nginx TMD模块

3、开发不定制 组合JavaScript和CSS文件 ? Yahoo!前端优化第一条原则 C Minimize HTTP Requests C 减少三路握手和HTTP请求的发送次数 ? 淘宝CDN combo C concat模块 C 将多个JavaScript、CSS请求合并成一个 淘宝CDN Combo的使用 ? 以两个问号(??)激活combo特性 ? 多个文件Y间用逗号(,)分开 ? 用一个?来表示时间戳 C 突破浏览器缓存 ? 例子 http://a.

tbcdn.cn/??s/kissy/1.1.6/kissy-min.js,p/global/1.0/global- min.js,p/et/et.js?t=2011092320110301.js 系统过载保护 ? 判断依据 C 系统的loadavg C 内存使用(swap的比率) C QPS ? sysgurad模块 ? 可定制保护页面 sysguard on;

sysguard_load load=4 action=/high_load.html;

sysguard_mem swapratio=10% action=/mem_high.html 多种日志方式 ? 本地和远程syslog支持 ? 管道支持 ? 抽样支持 C 减少写日志的数量,避免磁盘写爆 access_log syslog:user:info:127.0.0.1:514 combined;

access_log pipe:/path/to/cronolog combined;

access_log /path/to/file combined ratio=0.01;

主机信息调试 ? Tengine的footer模块 ? 输出效果 $ curl http://localhost Welcome to nginx! Welcome to nginx! footer $host_comment;

Tengine错误信息提示 ? 便于定位用户反馈的4xx和5xx错误 server_info on;

server_admin shudu@taobao.com;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题