温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
实战
Nginx_
取代
Apache
性能
Web
服务器
实战 Nginx:取代 Apache 的高性能 Web 服务器 序 言 我的网站系统架构之路 我最早接触计算机是在 1995 年,上小学四年级的时候。当时父亲单位买了一台 386 计算机(DOS 操作系统+UCDOS 汉字环境+WPS 文字处理软件),用于打字和打印文件。我每天课余时间都会抽空去玩这台计算机,利用 DOS 中自带的 QBASIC 语言编写非常简单的小程序,从那时起我就对计算机产生了浓厚的兴趣。之后的几年内,先后接触了 Windows 95/98/2000 操作系统,并在 Windows 98 上搭建了 PWS 个人网站服务器,在 Windows 2000 上搭建了 IIS 网站服务器。2000 年,初三毕业的那个暑假,我第一次接触互联网,做了自己的第一个纯静态 HTML 个人主页。高一时,我利用网上提供的免费主页空间,做了一个本地的门户网站。2003 年高考结束后的那个假期,我花 65 元购买了国际域名 、150 元购买虚拟主机,创办了一个采用 ASP 语言开发的国际经济贸易资讯类网站商资网(现在已关闭)。2003 年,我进入中南民族大学学习。由于高中我学的是文科,填志愿时不能选择计算机类专业,于是我选择了经济学院的国际经济与贸易专业。尽管如此,我对计算机和网络的兴趣依旧不减,开始学习 Linux 系统和 PHP 语言。由于具有一些网站制作知识,我进入了经济学院学生会的信息部,开发维护所在院系的网站。之后,又进入了学校党委宣传部下属的网络媒体“民大在线”,从事网站 PHP 开发与系统运维工作。后来,基于 Linux+Apache+MySQL+PHP 平台为学校招生就业工作处开发了“就业信息网”,并接触到了 IBM 高端服务器。接下来的日子,我为学校的多个部门开发、维护网站,为了便于演示网站,我编写了一键搭建 Apache+PHP+MySQL 服务器平台的软件“APMServ”。最后,我为学校网络中心兼职维护学校的主 Web 服务器,开发虚拟主机管理平台,接触到了 HP 刀片服务器和磁盘阵列。学校的兼职工作为我日后工作打下了比较扎实的基础。2007 年 1 月,大四下学期为实习阶段,我进入新浪网互动社区事业部播客产品部工作。新浪播客于 2006 年 12 月 20 日刚上线,我加入播客团队的时候,它正处于高速发展时期,网站 PV序 言 实战 Nginx:取代 Apache 的高性能 Web 服务器 viii快速增长,Apache+PHP 动态应用服务器的负载日益增大。而在 Web 服务器的负载均衡方面,由于一对 F5 BIG-IP 硬件负载均衡交换机要服务新浪网的多个产品,七层交换须要耗费 F5 BIG-IP不少的 CPU 资源,而 F5 BIG-IP 四层交换有专门的硬件芯片来处理,耗费的资源较少,所以,在新浪,F5 BIG-IP 一般只用四层负载均衡。但是,URL 过滤、转发、重定向及添加 x-forwarded-for头等功能,只有七层负载均衡才能实现。在这种背景下,我测试了来自俄罗斯的开源 Nginx 服务器,其并发支持能力高于 Apache 数倍,处理速度高效快捷、稳定性也极高,于是,在领导的支持下,逐步采用了 Nginx+PHP(FastCGI)取代了 Apache+PHP 服务器,采用 Nginx 负载均衡代替 F5 BIG-IP 进行软七层负载均衡,为公司节约了大量的服务器及系统运维开销。我 2007 年 9月开始撰写的Nginx+PHP(FastCGI)搭建胜过 Apache 十倍的 Web 服务器系列文章,作为国内最早详细介绍 Nginx+PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展起到了积极作用。2008 年 4 月10 月在赶集网工作期间,完成赶集网主站所有 Web 服务器从Apache+PHP 到 Nginx+PHP 的迁移,单台服务器的 CPU 平均占用率由 70%80%降低到 30%40%,系统负载由 1116 降低到 25。2008 年 11 月至今,我在金山软件网游公司逍遥网担任架构师期间,将 Web 负载均衡服务器、Web 缓存服务器、PHP 动态应用服务器集群、Flash FLV视频播放服务器等,全面采用 Nginx。2009 年 9 月 3 日 14:30,金山软件刚公测不久的大型 3D 武侠网游剑侠情缘网络版叁临时维护,暂停服务 1 小时,大量玩家上游戏官网,论坛、评论、客服等动态应用 Nginx 服务器集群,访问人数比平时峰值激增数倍,每台服务器的 Nginx 活动连接数达到 2.8 万,仍然能够正常提供服务,这也是我至今遇到的 Nginx 生产环境最高并发值。目前,Nginx 已经在新浪、搜狐、网易、腾讯等门户网站,以及豆瓣、六间房、酷 6 网、开心网、人人网、YUPOO 相册、迅雷看看、金山逍遥网、金山爱词霸等 Web 2.0 网站得到广泛应用,越来越受到大家的喜爱。撰写本书的背景 近期,新浪、搜狐、网易、腾讯、金山、TOM、中华网、赛尔网络、上海九城等知名互联网公司的系统工程师、网络工程师招聘信息中,都加上了一条对 Nginx 配置管理经验的要求。Nginx作为新兴的 Web 服务器,目前的发展势头迅猛,已经在众多知名网站的各项产品中取代 Apache。但是,Nginx 相关的中文资料却比较欠缺,目前还没有关于 Nginx 服务器的任何书籍,这也使得一些朋友对于是否采用 Nginx 取代 Apache 犹豫不决。本书就是为对 Nginx 服务器实践应用感兴趣的读者准备的,适用于以前没有接触过 Nginx,或者对 Nginx 有一些了解并希望能够进一步深入,以及对 Nginx 有较多研究,希望共同探讨的专业系统工程师、个人网站站长及一切 Linux/Unix从业人员。序 言 实战 Nginx:取代 Apache 的高性能 Web 服务器 ix 本书的主要内容 Nginx(“engine x”)是俄罗斯人 Igor Sysoev 编写的一款高性能的 HTTP 和反向代理服务器。Nginx 选择了 epoll 和 kqueue 作为网络 I/O 模型,在高连接并发的情况下,Nginx 是 Apache服务器不错的替代品,它能够支持高达 50 000 个并发连接数的响应,运行稳定,且内存、CPU等系统资源消耗非常低。本书主要分为 4 个部分,第 1 部分为基础篇,介绍了 Nginx 服务器的安装与配置方法;第 2部分为进阶篇,重点介绍了 Nginx 的配置优化方法、Nginx 与 PHP/JSP/ASP.NET/Perl 的结合配置方法、Nginx HTTP 反向代理与负载均衡的配置与优化、Nginx 的 Rewrite 规则、Nginx 的 Web 缓存服务、Nginx 模块开发等,最后还分析了新浪的开源软件项目基于 Nginx 的 NCACHE 网页缓存系统;第 3 部分为实战篇,分析了 Nginx 在国内知名网站(如新浪播客、金山逍遥网等)中的应用案例,以及 Nginx 在 Flash FLV 视频点播、小内存 VPS 服务器上的优化等内容;第 4 部分为模块篇,对 Nginx 的各项模块进行了集中介绍,可以作为参考手册来翻阅。致谢 在本书的编写过程中,得到了家人、同事和朋友的大力支持,在此我表示由衷的感谢。感谢老婆对我的支持与鼓励,感谢余建煊、李静、张鹏翼等朋友为本书作序,以及给予的帮助。感谢前新浪播客刘博、郑宇、姜源、李雅敏、宋健等朋友,以及现在金山逍遥网技术支持部所有同事在研究 Nginx 及日常工作中给我的支持与帮助。此外,还要感谢吴捷(第九城市)及不知名的网友给予的意见和建议。最后,要感谢在本书的编写过程中,博文视点的徐定翔、白爱萍、陈元玉等编辑给予的帮助与支持。示例代码下载 如果您需要书中的示例代码,请移步至:http:/ 言 实战 Nginx:取代 Apache 的高性能 Web 服务器 x作者联系方式 由于自身能力有限,书中难免存在错误与疏漏,如果读者发现哪儿存在错误,或者有什么想法和意见想交流,可以通过 E-mail 或博客留言,与我联系。个人博客:http:/ E-mail: 张 宴 北京金山软件 金山游戏(KSG)-逍遥网 系统架构师 2010 年 1 月 实战 Nginx:取代 Apache 的高性能 Web 服务器 完整诠释 Nginx Nginx(“engine x”)是一款高性能的 HTTP 和反向代理服务器,它因极高的执行效率及简单灵活的配置,被越来越多互联网企业所青睐。在短短的两三年时间内,Nginx 快速地传遍了国内 Web 开发领域,本书作者张宴在其中起了重要的推动作用。两年前,张宴作为新浪播客的系统工程师,开始测试应用由 Lgor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的 Nginx。在新浪播客每天数亿访问量的网站上,张宴进行了半年多的测试,Nginx 数倍于 Apache 的并发支持,以及高效快捷的反应能力,让我们对它有了百分之一万的信心。因此在新浪内部大规模推广应用,在小的 IDC 节点做软 F5 七层交换,替代 Apache作高性能 Web 服务器,使用 Ncache 替代 Squid,等等,做了一系列尝试和推广,取得了非常好的成绩,为公司节约了大量的服务器等系统运维开销。我作为该项目的负责人,作为张宴的领路人,对这个刚毕业不久的工程师所取得的成就不得不刮目相看。张宴用在新浪一年多的工作时间,通过反复内部测试,以及在新浪播客、博客等海量访问网站平台上的实际应用测试,熟练掌握了 Nginx 的配置、优化、开发方面的经验。并且通过他的个人博客(http:/)予以发布,用通俗易懂的文档与 Nginx 爱好者及业内专家进行交流沟通,积累了众多的解决方案和经验,可谓是业界 Nginx 应用的集大成。据了解网易目前采用了大量由张宴总结的 Nginx 解决方案。实战 Nginx:取代 Apache 的高性能 Web 服务器一书,可谓张宴对 Nginx 应用的经验和方案的总结,他用通俗易懂的例子,向读者完整诠释 Nginx 作为高性能服务器和反向代理服务器的用法。本书提供多种海量访问的解决方案,可以让读者少走弯路,帮企业节省服务器等硬件开支,是大型网站必备工具书,也是中小网站开发者必备的学习书籍。我作为 10 多年互联网的资深从业者,向读者郑重推荐此书!余建煊 原新浪播客高级技术经理 第九城市平台总监 2009 年 12 月于上海 推荐序 实战 Nginx:取代 Apache 的高性能 Web 服务器 IV分享 Nginx 的实战经验 在国内谈到 Nginx 不得不说一下本书作者张宴,初期 Nginx 的相关资料并不是很多,且 Nginx在国内的应用基本为零。张宴经过自己的摸索、学习、测试且结合实际的效果,归纳并总结了相关经验,在自己的博客(http:/)上与大家分享、交流。随着大家对 Nginx 逐渐了解,Nginx 也越来越被大家重视,目前国内已有众多大型网站使用该项技术,如新浪、网易、搜狐、校内、开心、金山逍遥等。张宴为 Nginx 在国内的推广及应用起到了极其重要的作用,被业内称为“国内 Nginx 第一人”。2008 年年底张宴加入了金山逍遥网,作为逍遥网技术部平台组组长,张宴带领组员重新设计了逍遥网的系统架构并加以实施。新系统架构用 Nginx 替换了原来所有的 Apache 服务器,既减少了服务器数量和带宽,又提高了整个平台的性能及易维护性。逍遥网全新的系统架构,充分展现了 Nginx 处理高并发的能力和易维护等特性。而且由于 Nginx 的开放性,根据实际的工作需要,逍遥网以 Nginx 扩展方式开发了很多底层功能,实现了业务需求。实战 Nginx:取代 Apache 的高性能 Web 服务器是一本难得的 Nginx 图书,无论你是一名系统工程师、系统架构师还是一名 LAMP 架构下的技术人员,该书都是不可多得的一手资料。书中凝聚了张宴工作中总结出来