编辑: 向日葵8AS | 2016-06-22 |
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 [email protected];