《决战Nginx 系统卷 高性能Web服务器详解与运维》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:陶利军编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302287841
  • 页数:662 页
图书介绍:本书以实例讲述了Nginx服务器的各种功能模块,并且实现了Nginx服务器与各种动态语言即PHP、Perl、Java、Python和Ruby的结合实现,具体实现是有三方面构成:Nginx服务器——功能模块——动态语言解析服务器。此外,详细总结了Nginx的五大缓存(即proxy_cache、proxy_store、Memcached、NCACHE、Varnish)。另外,对于Nginx服务器本身实现的功能(服务器名字解析、请求的处理等等)、以及Nginx服务器管理和高可用都进行了详细的阐述。

第1部分 Nginx服务器 3

第1章 Nginx的功能 3

1.1 功能描述 3

1.1.1 基本HTTP功能 3

1.1.2 其他HTTP功能 3

1.1.3 邮件代理服务器功能 4

1.1.4 架构和可扩展性 4

1.1.5 被测试的系统和平台 4

1.2 服务器的类型 5

1.3 认识Nginx服务器的基本模块 5

1.3.1 Nginx的内核模块 6

1.3.2 Nginx的事件模块 11

1.3.3 Nginx的HTTP内核模块 13

第2章 Nginx的模块管理和进程管理 37

2.1 模块管理 37

2.1.1 从源码看模块 37

2.1.2 选择使用Nginx的模块 39

2.1.3 Nginx使用第三方模块 41

2.2 进程管理 41

2.2.1 master进程和worker进程 41

2.2.2 关于worker数目的设置 43

2.3 针对Nginx对Linux系统的优化 43

2.3.1 关闭系统中不需要的服务 44

2.3.2 优化写磁盘操作 44

2.3.3 优化资源限制 45

2.3.4 优化内核TCP选项 45

2.4 优化Nginx服务器 47

2.4.1 关闭访问日志 47

2.4.2 使用epoll 48

2.4.3 Nginx服务器配置优化 48

第3章 Nginx如何处理一个请求 49

3.1 IP、域名部分的处理 49

3.1.1 基于名字的虚拟主机 49

3.1.2 阻止处理对不明确主机名的请求 50

3.1.3 基于IP和域名的虚拟域名服务器处理请求 50

3.2 URI部分的处理 51

3.2.1 实例 51

3.2.2 分析 52

第4章 服务器名字 54

4.1 通配符名字 54

4.2 正则表达式名字 55

4.3 其他不同种类的名字 56

4.4 名字优化 57

4.5 兼容性 59

4.6 对服务器名字的扩展 59

4.7 基于目录名的域名访问 59

4.7.1 正则表达式处于主机名字的位置上 59

4.7.2 正则表达式处于域名的位置上 61

4.8 关于$1、$2…的使用 63

第5章 协助用户操作Nginx的工具 65

5.1 工具1——nginx.vim 65

5.1.1 下载与安装 65

5.1.2 使用 65

5.2 工具2——eperusio-nginx_ensit 66

5.2.1 下载与安装 66

5.2.2 相关命令 67

5.2.3 实例 69

5.3 工具3——htpasswd.py 74

5.3.1 下载文件 74

5.3.2 命令的使用方法 77

5.4 工具4——Nginx启动脚本 78

第6章 5xx错误及处理 82

6.1 500内部服务器错误 82

6.1.1 问题分析 82

6.1.2 问题解决 83

6.2 502问题——502 bad gateway 84

6.3 504问题——504 gateway time-out 86

第7章 使用TCMalloc优化Nginx 90

7.1 相关安装 90

7.2 配置示例 92

7.3 指令 92

7.4 使用实例 92

第8章 PCRE正则表达式 94

8.1 安装PCRE 94

8.2 命令 97

8.2.1 pcre-config命令 97

8.2.2 pcretest命令 97

8.3 man目录 103

8.4 Nginx与正则表达式 103

8.4.1 正则表达式支持UTF-8 104

8.4.2 Nginx使用正则表达式 106

第9章 Nginx高可用的实现 108

9.1 安装Heartbeat 108

9.1.1 下载安装glue 109

9.1.2 下载安装Heartbeat 110

9.1.3 安装agents 112

9.2 配置Heartbeat 114

9.2.1 ha.cf文件 116

9.2.2 haresources文件 122

9.2.3 authkeys文件 122

9.3 启动Heartbeat 122

9.3.1 环境部署 122

9.3.2 启动主Heartbeat 124

9.3.3 启动备用Heartbeat 127

9.4 测试Heartbeat 130

9.4.1 宕掉主节点 130

9.4.2 重新启动主节点 132

第10章 10个QA 136

10.1 什么是Nginx 136

10.2 Nginx可以安装在哪些操作系统下 136

10.3 Nginx在Windows下的性能如何 136

10.4 Nginx与Apache比较有哪些优点 136

10.5 Nginx解决了C10k问题 137

10.6 从Nginx接收客户端请求处理的角度来说,它与Apache有何不同 137

10.7 安装完成Nginx后,如何查看Nginx的版本 137

10.8 安装完成Nginx后,如何查看configure时的配置 137

10.9 启动Nginx后,能不能看到Nginx当前都支持哪些模块 138

10.10 Https仅能用在指定的目录下吗 138

第2部分 Nginx服务器的功能模块第11章 限制流量 141

11.1 指令 141

11.2 实例配置 142

第12章 限制用户并发连接数 143

12.1 示例配置 143

12.2 指令 143

12.3 使用实例 144

第13章 修改或隐藏Nginx的版本号 147

13.1 隐藏版本号 147

13.2 修改版本号 148

第14章 配置FLV服务器 150

14.1 示例配置 150

14.2 指令 150

14.3 使用实例 150

第15章 Nginx的访问控制 157

15.1 示例配置 157

15.2 指令 157

15.3 使用实例 158

第16章 提供FTP下载 160

16.1 示例配置 160

16.2 指令 160

16.3 使用实例 161

第17章 Nginx与编码 163

17.1 文件和文件名的编码 163

17.2 使用convmv 164

17.3 使用enca 166

17.4 字符集设置模块 168

第18章 网页压缩传输 170

18.1 HttpGzipModule 170

18.2 HttpGzipStaticModule 175

第19章 控制Nginx如何记录日志 180

第20章 map模块的使用 186

第21章 Nginx预防应用层DDoS攻击 191

21.1 Limit request模块 191

21.2 访问测试 193

21.2.1 限制连接数 193

21.2.2 未限制连接数 194

第22章 为Nginx添加、清除或改写响应 199

22.1 HttpHeadersModule 199

22.2 ngx_headers_more 208

第23章 重写URI 225

第24章 Nginx与服务器端包含 238

24.1 ssi指令 239

24.2 使用实例 241

第25章 Nginx与X-Sendfile 247

25.1 处理流程 247

25.2 特殊头 248

25.3 使用实例 249

第26章 在Nginx的响应体之前或之后添加内容 253

第27章 Nginx与访问者的地理信息 258

第28章 Nginx的图像处理 266

第29章 Iocation中随机显示文件 269

第30章 后台Nginx服务器记录原始客户端的IP地址 271

第31章 解决防盗链 274

31.1 使用Referer模块 274

31.2 使用AccessKey模块 275

31.3 使用SecureLink模块 279

第32章 Nginx提供HTTPS服务 286

32.1 兼容性 286

32.2 安装SSL服务 286

32.3 通配符证书 291

32.4 变量 291

32.5 非标准的错误代码 292

32.6 使用举例 292

32.6.1 单向认证 292

32.6.2 更新Nginx配置 295

32.6.3 访问测试 295

32.6.4 双向认证 296

32.6.5 创建相关目录 298

32.7 HTTPS服务器优化 308

第33章 监控Nginx的工作状态 309

第34章 使用empty_gif 311

第35章 Nginx实现对响应体内容的替换 313

第36章 Nginx的WebDAV 315

第37章 Nginx的Xslt模块 322

第38章 Nginx的基本认证方式 324

38.1 生成密码 325

38.2 添加配置 329

38.3 访问测试 329

第39章 Nginx的cookie 331

第40章 Nginx基于客户端请求头的访问分类 337

第41章 通过Upstream模块使得Nginx实现后台服务器集群 340

第42章 根据浏览器选择主页 344

第43章 关于Nginx提供下载.ipa或.apk文件的处理方法 352

第44章 SCGI 353

44.1 被传递给SCGI服务器的参数 361

44.2 实例1:Perl语言的应用 361

44.3 实例2:Python语言的应用 369

44.4 在Nginx中使用Etag 378

第45章 Expires与ETag 379

45.1 安装nginx-static-etags模块 381

45.2 安装nginx-dynamic-etags模块 385

45.3 四个头的区别与联系 387

第46章 使用upstream_keepalive模块实现keep-live 388

第47章 后台服务器的健康检测 393

第48章 使用sticky模块实现粘贴性会话 401

第49章 Nginx对后台服务器实现“公平”访问 405

第50章 Nginx使用redis数据库 408

50.1 安装redis模块 408

50.2 安装redis2模块 415

50.3 关于redis 425

第51章 Nginx访问MongoDB 430

51.1 安装nginx-gridfs模块 430

51.2 关于MongoDB 433

第52章 Nginx访问Mogilefs 439

第3部分 Nginx与缓存 447

第53章 缓存技术——proxy_cache 447

5.31 了解cache_purge模块 447

53.2 设置Nginx的配置文件 449

53.3 访问测试 451

53.4 手动清除缓存 455

第54章 缓存技术——proxy_store 457

54.1 设置Nginx的配置文件 457

54.2 访问测试 458

54.3 手动清除缓存 461

第55章 缓存技术——Memcached 462

55.1 Memcached服务器 462

55.2 下载并安装libevent库 462

55.3 下载并安装Memcached 465

55.4 Memcached的其他工具 475

55.4.1 damemtop 476

55.4.2 memcached-init 480

55.4.3 start-memcached 482

55.4.4 memcached.sysv 486

55.4.5 memcached-tool 488

55.5 查看Memcached服务的运行情况 494

55.6 服务器的运行情况——详细了解Memcached的协议 496

55.6.1 通信协议 496

55.6.2 键(Key) 496

55.6.3 命令 496

55.6.4 过期时间 497

55.6.5 错误字符串 497

55.6.6 存储数据的命令 498

55.6.7 获取数据的命令 501

55.6.8 删除数据的命令 502

55.6.9 增加/减少数据的命令 503

55.6.10 查询存储状态的命令 505

55.6.11 多方面统计命令 505

55.6.12 条目统计命令 507

55.6.13 其他命令 511

55.6.12 UDP协议 513

55.7 Nginx的Memcached模块 514

55.8 Memcached的客户端 520

55.9 libmemcached 520

55.9.1 libmemcached的安装 521

55.9.2 命令 522

55.9.3 函数 532

第56章 缓存技术——NCache 535

56.1 NCache工作层示意图 536

56.2 请求逻辑图 536

56.3 安装NCache 537

56.4 配置文件 537

第57章 缓存技术——Varnish 543

57.1 了解Varnish 543

57.2 Varnish的访问部署 550

57.2.1 第一种部署方案:Varnish提供80访问 550

57.2.2 第二种部署方案:Varnish位于Nginx之后只提供缓存 551

57.3 Nginx与Varnish的结合 551

57.4 针对Linux系统设置 552

57.4.1 Linux优化内核 552

57.4.2 优化系统资源使用 552

57.5 使用Varnish 553

57.6 缓存大小的设置 559

57.7 VCL配置 561

57.8 Varnish的启动与停止 563

57.9 Varnish的访问日志 572

57.10 守护进程varnishd 580

57.11 Varnish提供的命令 602

57.12 手动清除缓存 624

57.12.1 基于命令行方式清除Varnish缓存 625

57.12.2 基于应用程序方式清除Varnish缓存 632

57.13 VCL语言 636

57.13.1 默认配置文件 636

57.13.2 操作符 639

57.13.3 数据结构 640

57.13.4 变量 642

57.13.5 ACL指令 645

57.13.6 Varnish的函数 651

57.13.7 子程序 652

57.13.8 ESI 658

57.14 grace模式和saint模式 660

57.14.1 grace模式 661

57.14.2 saint模式 662

57.14.3 grace模式和saint模式的局限性 662