书籍详情
决战Nginx·系统卷:高性能Web服务器详解与运维
作者:陶利军 编著
出版社:清华大学出版社
出版时间:2012-06-01
ISBN:9787302287841
定价:¥79.00
购买这本书可以去
内容简介
在这个点击率就是生命的时代,高可用是不可少的。本书完整讲述了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模式的
局限性
第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模式的
局限性
猜您喜欢