Nginx高性能Web服务器详解pdf下载pdf下载

Nginx高性能Web服务器详解百度网盘pdf下载

作者:
简介:本篇主要提供Nginx高性能Web服务器详解pdf下载
出版社:电子工业出版社
出版时间:2013-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

  如何在实战中熟练使用Nginx?
  如何发挥Nginx的性能?
  如何很快理清Nginx的框架脉络?
  如何在理解Nginx源码的基础上提高自己的编程能力?
  《Nginx高性能Web服务器详解》依托大量的实战经验,汇集经典的应用实例,帮助读者理解架构设计,理清原理脉络,提高实战技能。

内容简介

  《Nginx高性能Web服务器详解》全面介绍了当前Internet上流行的一款开放源代码的Web服务器——Nginx。全书一共分为四大部分,分别从入门、功能、实现和应用等四个方面对Nginx服务器的知识进行完整阐述,从而满足广大读者在应用Nginx服务器时的普遍性需求。同时也深入剖析了Nginx服务器的工作原理和实现技术,对其中使用到的数据结构和方法进行了详细阐述,并且结合实际的应用情况给出了多个基于Nginx服务器,同时还部署有其他典型服务器的分布式网站架构部署配置。
  《Nginx高性能Web服务器详解》特别适合于希望了解和掌握Nginx服务器应用技术和实现技术的广大教师、学生和电脑爱好者阅读,对使用Nginx服务器搭建Web服务器架构或进行网络服务器应用开发的技术人员尤其具有重要的阅读和参考价值。

作者简介

  苗泽,Linux研发工程师,GIS研发工程师,分布式系统研究人员。先后在中国科学院地理科学与资源研究所、北京邦诺存储科技有限公司研发中心、中国科学院电子学研究所从实研发工作。热爱互联网,并热衷于各种Web技术,对多种语言均有涉猎,擅长Linux和GIS相关研发工作,拥有丰富的Web技术实战经验,愿意与他人分享自己对技术的理解与感悟。

内页插图

目录

第1章 Nginx初探
1.1 Nginx的历史
1.2 常见服务器产品介绍
1.2.1 Apache服务器
1.2.2 Microsoft IIS
1.2.3 Tomcat服务器
1.2.4 Lighttpd服务器
1.2.5 Nginx诞生记
1.2.6 版本变更大事记
1.3 Nginx的功能特性
1.3.1 基本HTTP服务
1.3.2 高级HTTP服务
1.3.3 邮件代理服务
1.4 常用功能介绍
1.4.1 HTTP代理和反向代理
1.4.2 负载均衡
1.4.3 Web缓存
1.5 本章小结

第2章 Nginx服务器的安装部署
2.1 如何获取Nginx服务器安装文件
2.1.1 获取新版本的Nginx服务器
2.1.2 获取Nginx服务器的历史版本
2.2 安装Nginx服务器和基本配置
2.2.1 Windows版本的安装
2.2.2 Linux版本的编译和安装:准备工作
2.2.3 Linux版本的编译和安装:Nginx软件的自动脚本
2.2.4 Linux版本的编译和安装:Nginx源代码的编译和安装
2.3 Nginx服务的启停控制
2.3.1 Nginx服务的信号控制
2.3.2 Nginx服务的启动
2.3.3 Nginx服务的停止
2.3.4 Nginx服务的重启
2.3.5 Nginx服务器的升级
2.4 Nginx服务器基础配置指令
2.4.1 nginx.conf文件的结构
2.4.2 配置运行Nginx服务器用户(组)
2.4.3 配置允许生成的worker process数
2.4.4 配置Nginx进程PID存放路径
2.4.5 配置错误日志的存放路径
2.4.6 配置文件的引入
2.4.7 设置网络连接的序列化
2.4.8 设置是否允许同时接收多个网络连接
2.4.9 事件驱动模型的选择
2.4.10 配置最大连接数
2.4.11 定义MIME-Type
2.4.12 自定义服务日志
2.4.13 配置允许sendfile方式传输文件
2.4.14 配置连接超时时间
2.4.15 单连接请求数上限
2.4.16 配置网络监听
2.4.17 基于名称的虚拟主机配置
2.4.18 基于IP的虚拟主机配置
2.4.19 配置location块
2.4.20 配置请求的根目录
2.4.21 更改location的URI
2.4.22 设置网站的默认首页
2.4.23 设置网站的错误页面
2.4.24 基于IP配置Nginx的访问权限
2.4.25 基于密码配置Nginx的访问权限
2.5 Nginx服务器基础配置实例
2.5.1 测试myServer1的访问
2.5.2 测试myServer2的访问
2.6 本章小结

第3章 Nginx服务器架构初探
3.1 模块化结构
3.1.1 什么是“模块化设计”
3.1.2 Nginx模块化结构
3.2 Nginx服务器的Web请求处理机制
3.2.1 多进程方式
3.2.2 多线程方式
3.2.3 异步方式
3.2.4 Nginx服务器如何处理请求
3.2.5 Nginx服务器的事件处理机制
3.3 Nginx服务器的事件驱动模型
3.3.1 事件驱动模型概述
3.3.2 Nginx中的事件驱动模型
3.3.3 select库
3.3.4 poll库
3.3.5 epoll库
3.3.6 rtsig模型
3.3.7 其他事件驱动模型
3.4 设计架构概览
3.3.1 Nginx服务器架构
3.3.2 Nginx服务器的进程
3.3.3 进程交互
3.3.4 Run Loops事件处理循环模型
3.5 本章小结

第4章 Nginx服务器的高级配置
4.1 针对IPv4的内核7个参数的配置优化
4.2 针对CPU的Nginx配置优化的2个指令
4.3 与网络连接相关的配置的4个指令
4.4 与事件驱动模型相关的配置的8个指令
4.5 本章小结

第5章 Nginx服务器的Gzip压缩
5.1 由ngx_http_gzip_module模块处理的9个指令
5.2 由ngx_http_gzip_static_module模块处理的指令
5.3 由ngx_http_gunzip_module模块处理的2个指令
5.4 Gzip压缩功能的使用
5.4.1 Gzip压缩功能综合配置实例
5.4.2 Gzip压缩功能与IE6浏览器运行脚本的兼容问题
5.4.3 Nginx与其他服务器交互时产生的Gzip压缩功能相关问题
5.5 本章小结

第6章 Nginx服务器的Rewrite功能
6.1 Nginx后端服务器组的配置的5个指令
6.2 Rewrite功能的配置
6.2.1 “地址重写”与“地址转发”
6.2.2 Rewrite规则
6.2.3 if指令
6.2.4 break指令
6.2.5 rewrite指令
6.2.6 rewrite_log指令
6.2.7 set指令
6.2.8 uninitialized_variable_warn指令
6.2.9 Rewrite常用全局变量
6.3 Rewrite的使用
6.3.1 域名跳转
6.3.2 域名镜像
6.3.3 独立域名
6.3.4 目录自动添加“/”
6.3.5 目录合并
6.3.6 防盗链
6.4 本章小结

第7章 Nginx服务器的代理服务
7.1 正向代理与反向代理的概念
7.2 Nginx服务器的正向代理服务
7.2.1 Nginx服务器正向代理服务的配置的3个指令
7.2.2 Nginx服务器正向代理服务的使用
7.3 Nginx服务器的反向代理服务
7.3.1 反向代理的基本设置的21个指令
7.3.2 Proxy Buffer的配置的7个指令
7.3.3 Proxy Cache的配置的12个指令
7.4 Nginx服务器的负载均衡
7.4.1 什么是负载均衡
7.4.2 Nginx服务器负载均衡配置
7.4.3 配置实例一:对所有请求实现一般轮询规则的负载均衡
7.4.4 配置实例二:对所有请求实现加权轮询规则的负载均衡
7.4.5 配置实例三:对特定资源实现负载均衡
7.4.6 配置实例四:对不同域名实现负载均衡
7.4.7 配置实例五:实现带有URL重写的负载均衡
7.5 本章小结

第8章 Nginx服务器的缓存机制
8.1 Web缓存技术简述
8.2 404错误驱动Web缓存
8.3 资源不存在驱动Web缓存
8.4 基于memcached的缓存机制的6个指令
8.5 Proxy Cache缓存机制
8.6 Nginx与Squid组合
8.6.1 Squid服务器的配置
8.6.2 Nginx服务器的配置
8.7 基于第三方模块ncache的缓存机制
8.8 本章小结

第9章 Nginx服务器的邮件服务
9.1 邮件服务
9.2 Nginx邮件服务的配置的12个指令
9.3 Nginx邮件服务配置实例
9.4 本章小结

第10章 Nginx源码结构
10.1 Nginx源码的3个目录结构
10.1.1 core目录
10.1.2 event目录
10.1.3 http目录
10.2 Nginx源码的模块化结构
10.2.1 公共功能
10.2.2 配置解析
10.2.3 内存管理
10.2.4 事件驱动
10.2.5 日志管理
10.2.6 HTTP服务
10.2.7 Mail服务
10.2.8 模块支持
10.3 本章小结

第11章 Nginx基本数据结构
11.1 ngx_module_s结构体
11.1.1 分类标识ctx_index
11.1.2 模块计数器index
11.1.3 模块上下文
11.1.4 回调函数
11.2 ngx_command_s结构体
11.2.1 type成员
11.2.2 函数指针set
11.2.3 conf和offset
11.3 3个基本模块的指令集数组结构
11.3.1 http模块
11.3.2 event模块
……

精彩书摘

  2.3.3 Nginx服务的停止
  停止Nginx服务有两种方法:一种是快速停止;一种是平缓停止。快速停止是指立即停止当前Nginx服务正在处理的所有网络请求,马上丢弃连接,停止工作;平缓停止是指允许Nginx服务将当前正在处理的网络请求处理完成,但不再接收新的请求,之后关闭连接,停止工作。
  停止Nginx服务的操作比较多。可以发送信号:
  ./sbin/Nginx—g TERM | IMT | OUIT
  其中,TERM和INT信号用于快速停止,QUIT用于平缓停止。
  或者:
  kill TERM | InT | QUIT '/Nginx/logs/nginx.pid'
  当然也可以使用kill命令向Nginx进程发送—9或者SIGKILL信号强制关闭Nginx服务:
  kill—9 | SIGKILL '/Nginx/logs/nginx.pid'
  但不建议这样使用。
  2.3.4 Nginx服务的重启
  更改Nginx服务器的配置和加入新模块后,如果希望当前的Nginx服务应用新的配置或使新模块生效,就需要重启Nginx服务。当然我们可以先关闭Nginx服务,然后使用新的Nginx配置文件重启服务。这里主要介绍Nginx服务的平滑重启。
  平滑重启是这样一个过程,Nginx服务进程接收到信号后,首先读取新的Nginx配置文件,如果配置语法正确,则启动新的Nginx服务,然后平缓关闭旧的服务进程;如果新的Nginx配置有问题,将显示错误,仍然使用旧的Nginx进程提供服务。
  ……

前言/序言

  随着电子技术的日益繁荣,信息网络的急速发展,世界的每一个角落和人类的点滴生活都产生了日新月异的变化。技术的发展可以推动社会的进步,而社会的进步又能支持新技术的产生和应用,两者相互促进,共同发展,推动了人类历史前进的脚步。
  “信息高速公路”这一概念的提出,实现了全球范围内声、像、图、文等多媒体信息的高速传输和共享。WorldWideWeb技术突破性的发展,解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,其成为了Internet上最为流行的信息传播方式。Web服务器作为提供网络信息浏览服务的终端,它已成为Internet上最大的计算机群,并为Internet的普及迈出了开创性的一步,是Internet上取得的最激动人心的成就之一。


  为什么要写本书
  Web服务器技术发展到现在,已经不能仅仅考虑单一的网络信息浏览查询功能,随着信息数据的不断增长和用户体验需求的不断提高,其涉及的技术也趋于多元化。这些技术主要关心三个方面的问题:
  一是服务器自身的处理性能。信息数据的急速增长、云计算和大数据理论的相继提出,使得对Web服务器的性能要求越来越高,虽然数据处理不是Web服务器的主要工作,但是如何能够更快地处理和响应客户端请求是Web服务器面临的关键问题之一。
  二是服务器的稳定性。Internet遍布全球,每时每刻都有大量的请求需要处理,一台优秀的Web服务器应该能提供持续的不间断服务,这对Web服务器程序来说是一个考验。如何保证Web服务器在大量并发请求出现的时候仍然稳定运行,在长时间运转过程中降低产生问题的概率,在产生问题之前能够有效预防,产生问题时能够有效避免数据丢失,在运行过程中减小对系统平台的资源压力,等等,这些也是Web服务器致力于解决的关键问题之一。
  三是Web服务器的定制性。Web服务器通常面向的用户是管理人员,能够在其中快速添加、删除和配置功能,并且实施步骤简单,部署迅速,这也是Web服务器应该具备的优点。
  目前市场上比较流行的Web服务器主要有Apache、MicrosoftIIS、Sun、Nginx、Tomcat、Lighttpd等。这些服务器各具特色但也各有缺点。Nginx服务器可以说是Web服务器市场的一匹黑马,从2002年第一个版本发布,到现在进入高速发展的时期,其已经占据了一席之地,受到全球广大Web服务器使用者的青睐。由于Nginx服务器发展迅速,因此目前能够完整系统介绍Nginx服务器相关知识的书籍不多。本书以Nginx服务器为对象,从Nginx服务器的功能配置、源码、部署实践等三个方面,较为完整地阐述了Nginx服务器的应用实践和技术实现。
  本书有什么内容
  本书一共分为4大部分18个章节,分别从入门篇、功能篇、实现篇和应用篇等4个方面对Nginx服务器进行了阐述。
  入门篇简单介绍了目前的Web服务器市场和Nginx服务器的诞生历史,主要对Nginx服务器的安装和基础配置、优化配置进行了详细的分析和说明,在这一部分也简单介绍了Nginx服务器的模块化结构,这一方面为我们学习后面功能篇中的内容进行知识准备,另一方面也为我们学习实现篇中的内容做一个铺垫。
  功能篇从Nginx服务器常用的功能入手,分别介绍了如何配置Nginx服务器的gzip功能、rewrite功能、proxy功能、cache功能和邮件服务功能,以帮助大家能够根据不同的实际需求对Nginx服务器功能模块进行定制。
  实现篇深入到Nginx服务器的源码实现,对Nginx服务器的初始化启动、主进程和工作进程的功能实现源码进行了详细的分析,帮助大家更深一步理解Nginx服务器的运行过程和实现技术,在这一部分还简单地介绍了Nginx服务器模块编程的相关内容,这为大家进行Nginx服务器模块设计提供了思路。
  应用篇主要列举了Nginx服务器在动态网站建设中的应用,同时也介绍了Nginx服务器应用中比较经典的一个架构——LNAMP的配置部署,为大家展示了在实际应用中如何使用Nginx服务器提供Web服务的配置实例。


  需要学习的基础知识
  在学习本书之前,大家应该对以下的知识有一个简单的初步了解,这样更有利于对本书知识的学习和理解:
  .Web服务器的基本使用经验
  .网络编程的基础知识
  .HTTP协议的基础知识
  .C语言编程基础知识


  本书的优势
  .轻松入门。本书以Nginx服务器的发展历史作为切入点,详细介绍了Nginx服务器的优势、基本概念、进阶技术等,内容由浅入深,是广大Web服务器工作者了解Nginx服务器的首选。
  .上手容易。本书集合了丰富的实例,尽可能网罗所有生产中使用的经验技巧,让读者能够快速上手。
  .深入浅出。本书从多个角度完整地讲述了Nginx服务器的各个方面,不仅包括了基本概念相关知识,更包括了Nginx服务器的使用技巧、深层次的源码架构等内容,让读者能够全面了解Nginx服务器。
  .实战讲解。本书在结束了理论讲解之后,会特意安排一部分内容向读者完整展示常见Nginx服务器应用实例,便于读者巩固前面各章节学习的理论知识。
  .问题集锦。在本书各章节的讲解过程中收录了笔者在实际生产过程中遇到或者收集到的大量Nginx服务器使用的问题及可能的解答,这有助于读者在实际操作中对问题的处理。
  在撰写本书的过程中,我们一直努力为读者呈现一个较为完整的知识结构,尽力将关于Nginx服务器的使用、实践、实现等多方面的知识传输给大家,希望它们能够起到抛砖引玉的作用,为大家进一步理解和学习Nginx服务器的使用方法和设计精髓提供基本知识和思路。该书是我们在使用Nginx服务器的过程中的思考和学习记录,由于知识水平和应用水平有限,疏漏和错误之处在所难免,欢迎大家积极批评和指正。