决战Nginx系统卷

出版时间:2012-6  出版社:清华大学出版社  作者:陶利军  页数:662  字数:1153000  
Tag标签:无  

内容概要

 
在这个点击率就是生命的时代,高可用是不可少的。本书完整讲述了Nginx服务器的各种技术细节以及安装、部署、运维等方面的内容。
  本书第一部分首先讲述了Nginx服务器的功能、模块管理和进程管理,然后讲述Nginx如何处理请求,在这个基础之上再认识Nginx提供的服务器的名字,Nginx服务器最大的焦点在于高并发和反向代理,在不多却足够使用的模块下实现了更多的功能。
  在第二部分中,通过具体使用实例讲述了Nginx的模块(包括官方模块和第三方模块),并详细介绍了充分使用Nginx的方式方法。同时在这里使用了Heartbeat服务实现Nginx服务器的高可用。
  本书的最后一部分是关于Nginx使用缓存技术的方法,共列举了Nginx使用的五大缓存,特别是广泛使用的代理缓存、Memcached和Varnish,另外对于Memcached服务器的使用贯穿了整套书。在本书中着重讲述了它的协议、原理和使用,而在本书姊妹篇中则通过不同语言的客户端对Memcached服务器实现具体使用。
  本书适用于广大的Linux爱好者、具有一定Linux基础的系统管理员、Linux下的Web服务器管理员、Linux服务器下动态语言开发人员、Nginx服务器管理员、培训中心师生、运维人员以及一切应该了解和使用Nginx的用户。

作者简介

  陶利军,互联网行业高端低调人士,专注于Linux平台下开源产品的研究和推广,运维构架(服务搭建、集群及高可用),网络安全评估,分布式存储等。

书籍目录

目 录
第1部分 Nginx服务器
第1章 Nginx的功能
1.1 功能描述
1.1.1 基本HTTP功能
1.1.2 其他HTTP功能
1.1.3 邮件代理服务器功能
1.1.4 架构和可扩展性
1.1.5 被测试的系统和平台
1.2 服务器的类型
1.3 认识Nginx服务器的基本模块
1.3.1 Nginx的内核模块
1.3.2 Nginx的事件模块
1.3.3 Nginx的HTTP内核模块
第2章 Nginx的模块管理和
进程管理
2.1 模块管理
2.1.1 从源码看模块
2.1.2 选择使用Nginx的模块
2.1.3 Nginx使用第三方模块
2.2 进程管理
2.2.1 master进程和worker进程
2.2.2 关于worker数目的设置
2.3 针对Nginx对Linux系统的优化
2.3.1 关闭系统中不需要的服务
2.3.2 优化写磁盘操作
2.3.3 优化资源限制
2.3.4 优化内核TCP选项
2.4 优化Nginx服务器
2.4.1 关闭访问日志
2.4.2 使用epoll
2.4.3 Nginx服务器配置优化
第3章 Nginx如何处理一个请求
3.1 IP、域名部分的处理
3.1.1 基于名字的虚拟主机
3.1.2 阻止处理对不明确主机名
的请求
3.1.3 基于IP和域名的虚拟域名
服务器处理请求
3.2 URI部分的处理
3.2.1 实例
3.2.2 分析
第4章 服务器名字
4.1 通配符名字
4.2 正则表达式名字
4.3 其他不同种类的名字
4.4 名字优化
4.5 兼容性
4.6 对服务器名字的扩展
4.7 基于目录名的域名访问
4.7.1 正则表达式处于主机名字
的位置上
4.7.2 正则表达式处于域名
的位置上
4.8 关于$1、$2…的使用
第5章 协助用户操作Nginx
的工具
5.1 工具1——nginx.vim
5.1.1 下载与安装
5.1.2 使用
5.2 工具2——eperusio-nginx_ensit
5.2.1 下载与安装
5.2.2 相关命令
5.2.3 实例
5.3 工具3——htpasswd.py
5.3.1 下载文件
5.3.2 命令的使用方法
5.4 工具4——Nginx启动脚本
第6章 5xx错误及处理
6.1 500内部服务器错误
6.1.1 问题分析
6.1.2 问题解决
6.2 502问题—— 502 bad gateway
6.3 504问题—— 504 gateway
time-out
第7章 使用TCMalloc优化
Nginx
7.1 相关安装
7.2 配置示例
7.3 指令
7.4 使用实例
第8章 PCRE正则表达式
8.1 安装PCRE
8.2 命令
8.2.1 pcre-config命令
8.2.2 pcretest命令
8.3 man目录
8.4 Nginx与正则表达式
8.4.1 正则表达式支持UTF-8
8.4.2 Nginx使用正则表达式
第9章 Nginx高可用的实现
9.1 安装Heartbeat
9.1.1 下载安装glue
9.1.2 下载安装Heartbeat
9.1.3 安装agents
9.2 配置Heartbeat
9.2.1 ha.cf文件
9.2.2 haresources文件
9.2.3 authkeys文件
9.3 启动Heartbeat
9.3.1 环境部署
9.3.2 启动主Heartbeat
9.3.3 启动备用Heartbeat
9.4 测试Heartbeat
9.4.1 宕掉主节点
9.4.2 重新启动主节点
第10章 10个QA
10.1 什么是Nginx
10.2 Nginx可以安装在哪些
操作系统下
10.3 Nginx在Windows下的性能
如何
10.4 Nginx与Apache比较有哪些
优点
10.5 Nginx解决了C10k问题
10.6 从Nginx接收客户端请求处理的
角度来说,它与Apache
有何不同
10.7 安装完成Nginx后,如何查看
Nginx的版本
10.8 安装完成Nginx后,如何查看
configure时的配置
10.9 启动Nginx后,能不能看到Nginx
当前都支持哪些模块
10.10 Https仅能用在指定的
目录下吗
第2部分 Nginx服务器的功能模块
第11章 限 制 流 量
11.1 指令
11.2 实例配置
第12章 限制用户并发连接数
12.1 示例配置
12.2 指令
12.3 配置实例
第13章 修改或隐藏Nginx
的版本号
13.1 隐藏版本号
13.2 修改版本号
第14章 配置FLV服务器
14.1 示例配置
14.2 指令
14.3 配置实例
第15章 Nginx的访问控制
15.1 配置示例
15.2 指令
15.3 使用实例
第16章 提供FTP下载
16.1 配置示例
16.2 指令
16.3 使用实例
第17章 Nginx与编码
17.1 文件和文件名的编码
17.2 使用convmv
17.3 使用enca
17.4 字符集设置模块
第18章 网页压缩传输
18.1 HttpGzipModule
18.2 HttpGzipStaticModule
第19章 控制Nginx如何记录日志
第20章 map模块的使用
第21章 Nginx预防应用层DDoS
攻击
21.1 Limit request模块
21.2 访问测试
21.2.1 限制连接数
21.2.2 未限制连接数
第22章 为Nginx添加、清除或
改写响应
22.1 HttpHeadersModule
22.2 ngx_headers_more
第23章 重写URI
第24章 Nginx与服务器端包含
24.1 ssi指令
24.2 使用实例
第25章 Nginx与X-Sendfile
25.1 处理流程
25.2 特殊头
25.3 使用实例
第26章 在Nginx的响应体之前或
之后添加内容
第27章 Nginx与访问者的
地理信息
第28章 Nginx的图像处理
第29章 location中随机
显示文件
第30章 后台Nginx服务器记录
原始客户端的IP地址
第31章 解决防盗链
31.1 使用Referer模块
31.2 使用AccessKey模块
31.3 使用SecureLink模块
第32章 Nginx提供HTTPS服务
32.1 兼容性
32.2 安装SSL服务
32.3 通配符证书
32.4 变量
32.5 非标准的错误代码
32.6 使用举例
32.6.1 单向认证
32.6.2 更新Nginx配置
32.6.3 访问测试
32.6.4 双向认证
32.6.5 创建相关目录
32.7 HTTPS 服务器优化
第33章 监控Nginx的工作状态
第34章 使用empty_gif
第35章 Nginx实现对响应体内容
的替换
第36章 Nginx的WebDAV
第37章 Nginx的Xslt模块
第38章 Nginx的基本认证方式
38.1 生成密码
38.2 添加配置
38.3 访问测试
第39章 Nginx的cookie
第40章 Nginx基于客户端请求头
的访问分
第41章 通过Upstream模块使得
Nginx实现后台服务器
集群
第42章 根据浏览器选择主页
第43章 关于Nginx提供下载.ipa或
.apk文件的处理方法
第44章 SCGI
44.1 被传递给SCGI服务器的参数
44.2 实例1:Perl语言的应用
44.3 实例2:Python语言的应用
44.4 在Nginx中使用Etag
第45章 Expires与ETag
45.1 安装nginx-static-etags模块
45.2 安装nginx-dynamic-etags模块
45.3 四个头的区别与联系
第46章 使用upstream_keepalive
模块实现keep-live
第47章 后台服务器的健康检测
第48章 使用sticky模块实现
粘贴性会话
第49章 Nginx对后台服务器实现
“公平”访问
第50章 Nginx使用redis数据库
50.1 安装redis模块
50.2 安装redis2模块
50.3 关于redis
第51章 Nginx访问MongoDB
51.1 安装nginx-gridfs模块
51.2 关于MongoDB
第52章 Nginx访问Mogilefs
第3部分 Nginx与缓存
第53章 缓存技术——proxy
_cache
5.31 了解cache_purge模块
53.2 设置Nginx的配置文件
53.3 访问测试
53.4 手动清除缓存
第54章 缓存技术——proxy
_store
54.1 设置Nginx的配置文件
54.2 访问测试
54.3 手动清除缓存
第55章 缓存技术——Memcached
55.1 Memcached服务器
55.2 下载并安装libevent库
55.3 下载并安装Memcached
55.4 Memcached的其他工具
55.4.1 damemtop
55.4.2 memcached-init
55.4.3 start-memcached
55.4.4 memcached.sysv
55.4.5 memcached-tool
55.5 查看Memcached服务的
运行情况
55.6 服务器的运行情况——详细了解
Memcached的协议
55.6.1 通信协议
55.6.2 键(Key)
55.6.3 命令
55.6.4 过期时间
55.6.5 错误字符串
55.6.6 存储数据的命令
55.6.7 获取数据的命令
55.6.8 删除数据的命令
55.6.9 增加/减少数据的命令
55.6.10 查询存储状态的命令
55.6.11 多方面统计命令
55.6.12 条目统计命令
55.6.13 其他命令
55.6.12 UDP协议
55.7 Nginx的Memcached模块
55.8 Memcached的客户端
55.9 libmemcached
55.9.1 libmemcached的安装
55.9.2 命令
55.9.3 函数
第56章 缓存技术——NCache
56.1 NCache工作层示意图
56.2 请求逻辑图
56.3 安装NCache
56.4 配置文件
第57章 缓存技术——Varnish
57.1 了解Varnish
57.2 Varnish的访问部署
57.2.1 第一种部署方案:Varnish
提供80访问
57.2.2 第二种部署方案:Varnish
位于Nginx之后只提供
缓存
57.3 Nginx与Varnish的结合
57.4 针对Linux系统设置
57.4.1 Linux优化内核
57.4.2 优化系统资源使用
57.5 使用Varnish
57.6 缓存大小的设置
57.7 VCL配置
57.8 Varnish的启动与停止
57.9 Varnish的访问日志
57.10 守护进程varnishd
57.11 Varnish提供的命令
57.12 手动清除缓存
57.12.1 基于命令行方式清除
Varnish缓存
57.12.2 基于应用程序方式清除
Varnish缓存
57.13 VCL语言
57.13.1 默认配置文件
57.13.2 操作符
57.13.3 数据结构
57.13.4 变量
57.13.5 ACL指令
57.13.6 Varnish的函数
57.13.7 子程序
57.13.8 ESI
57.14 grace模式和saint模式
57.14.1 grace模式
57.14.2 saint模式
57.14.3 grace模式和 saint模式的
局限性

章节摘录

版权页:   插图:    这个指令,另外要想使用chunk编码需要在HTTP1.1协议下访问才有效。 指令名称:client body_in_file_only 语法:client body_in_file_only on|off 默认值:off 使用环境:http,server,location 功能:该指令总是强制Nginx将客户端请求体存储到一个临时的磁盘文件,即使请求体的实际大小为0。然而需要注意的是,在启用该指令之后,该文件在请求完成之后并不会被移除。该指令可以用于调试和嵌入式Perl模块$r->request_body_file方法的使用。 指令名称:client_body_in_single_buffer 语法:client_body_in_single_buffer 默认值:off 使用环境:http,server,location 功能:该指令在0.7.58以上的Nginx版本中提供,用于指定是否将整个客户端请求体保存在单个请求缓存中。为了减少复制操作,当使用变量$request_body的时候,推荐使用该指令。 注意:当请求体不能被单个缓存(参考client_body_buffer_size)容纳下的时候,那么请求体仍将会保存到磁盘上。 指令名称:client_body_buffer_size 语法:client_body_buffer_size the_size 默认值:8k/16k 使用环境:http,server,location 功能:该指令指定了客户端请求体缓存的大小。如果请求体大于该缓存大小,那么整个请求体或者请求体的某些部分将会被写入临时文件。 默认值等于两个页面的大小,页面的大小依赖于所在的操作系统平台,可能是8k或者是16k。 当请求头中Content-Length的值小于指定缓存的大小时,那么Nginx将会使用较小的一个缓存,因此Nginx也并非总是为每一个请求分配指定大小的缓存。 指令名称:client_body_temp_path 语法:client_body_temp_path dir-path(level1(level2(level3) 默认值:client_body_temp 使用环境:http,server,location 功能:该指令用于指定一个存储临时文件的目录,在这个目录中将会存储客户端请求体。按照指定的子目录等级,可能会有三级目录。例如: client_body_temp_path /spool/nginx/client_temp 12; 那么该目录的存储架构将会是: /spool/nginx/client temp/7/45/00000123457。

编辑推荐

《决战Nginx系统卷:高性能Web服务器详解与运维》涵盖现有流行动态语言(PHP、Python、Perl、Java、Ruby 和 ASP.NET)与Nginx服务器的结合,通过在生产环境中的具体应用,详细讲述了每一种应用服务器(包括开发架构)的多种不同结合方式。另外,《决战Nginx系统卷:高性能Web服务器详解与运维》详细讲述了应用程序服务器的缓存技术,特别是对Memcached服务器的应用。

数据来源网站

電子教程網,更多图书可访问PDF图书下载

图书封面

图书标签Tags

评论、评分、阅读与下载


    决战Nginx系统卷 PDF格式下载



用户评论 (总计41条)

 
 

  •     比较专业的书,想从事运维或者想了解Nginx的可以买来看看,最好搭配技术卷
  •     这本书不错 不过我是基于windows上使用nginx 不过这本书可以让我学的更系统化
  •     非常不错的书,和技术卷一起买的
  •     很不错的一本书,写的很详细
  •     粗略翻了一下,觉得还不错,应该能学到自己想要学的东西!!
  •     书中思路可以学习。才参考,总体不错。
  •     详细专业,绝对经典极的
  •     这书不错,真心不错,值得看看
  •     好书用的着的书
  •     送货很快,大体看了一下很不错的
  •     还在读,回头在评论。
  •     可以作为手册。有收藏价值。
  •     这个书本不错,可以学到很多东西
  •     正需要的资料
  •     灰常不错的一本书~对于之后的nginx运维之路,有很好的指导性意义~~
  •     因为书本很厚,所以封面和封底都用了比较厚的纸,纸质相当不错
  •     资料合集,如果有精力的话,可以通过百度加谷歌总结一下
  •     高性能Web服务器详解与运维
  •