Nginx高性能Web服务器详解

Nginx高性能Web服务器详解

编辑推荐

深入Nginx源码内部,从底层搞定服务器配置。

内容简介

本书全面介绍了当前Internet上流行的一款开放源代码的Web服务器——Nginx。

全书一共分为四大部分,分别从入门、功能、实现和应用等四个方面对Nginx服务器的知识进行完整阐述,从而满足广大读者在应用Nginx服务器时的普遍性需求。同时也深入剖析了Nginx服务器的工作原理和实现技术,对其中使用到的数据结构和方法进行了详细阐述,并且结合实际的应用情况给出了多个基于Nginx服务器,同时还部署有其他典型服务器的分布式网站架构部署配置。

本书特别适合于希望了解和掌握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.4.1 Nginx服务器架构

3.4.2 Nginx服务器的进程

3.4.3 进程交互

3.4.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模块

11.3.3 mail模块

11.4 ngx_ pool_s结构体

11.4.1 ngx_pool_data_t结构体

11.4.2 ngx_pool_large_s结构体

11.4.3 ngx_pool_cleanup_s结构体

11.5 Nginx socket相关的数据结构

11.5.1 ngx_listening_s结构体

11.5.2 ngx_http_conf_port_t结构体

11.5.3 ngx_http_conf_addr_t结构体

11.6 ngx_event_s结构体

11.7 ngx_connection_s结构体

11.8 ngx_cycle_s结构体

11.9 ngx_conf_s结构体

11.9.1 配置上下文*ctx

11.9.2 指令类型type

11.10 ngx_signal_t结构体

11.11 ngx_process_t结构体

11.12 本章小结

第12章 Nginx的启动初始化

12.1 Nginx启动过程概览

12.1.1 程序初始化

12.1.2 启动多进程

12.2 Nginx的初始化

12.2.1 读取并处理启动参数

12.2.2 继承socket

12.2.3 初始化时间及建立新的cycle结构

12.2.4 建立core模块上下文结构

12.2.5 解析配置文件

12.2.6 初始化core模块上下文

12.2.7 创建PID文件

12.2.8 处理监听socket

12.2.9 信号设置

12.2.10 启动Master Process

12.2.11 Nginx初始化过程总结

12.3 Nginx的启动

12.3.1 主进程设置信号阻塞

12.3.2 设置进程标题

12.3.3 启动工作进程

12.3.4 启动缓存索引重建及管理进程

12.3.5 循环处理信号

12.3.6 Nginx启动过程总结

12.4 本章小结

第13章 Nginx的时间管理

13.1 获取系统时间的一般方法

13.1.1 系统调用的开销

13.1.2 gettimeofday()

13.2 Nginx时间管理的工作原理

13.2.1 时间缓存的更新

13.2.2 更新时间缓存的时机

13.3 缓存时间的精度

13.3.1 设置缓存时间的精度

13.3.2 缓存时间精度的控制原理

13.4 本章小结

第14章 Nginx的内存管理

14.1 内存池的逻辑结构

14.2 内存池的管理

14.2.1 创建内存池

14.2.2 销毁内存池

14.2.3 重置内存池

14.3 内存的使用

14.3.1 申请内存

14.3.2 释放内存

14.3.3 回收内存

14.4 本章小结

第15章 Nginx工作进程

15.1 工作进程概览

15.2 相关源码分析

15.2.1 设置工作进程运行环境

15.2.2 监听和处理进程控制事件

15.2.3 接收网络请求事件

15.2.4 执行进程控制

15.3 Nginx服务器进程间通信

15.3.1 Linux进程间通信方式

15.3.2 Linux进程间双工通信的实现

15.3.3 通信通道的建立和设置

15.3.4 通信通道的使用

15.3.5 消息的读写

15.4 本章小结

第16章 Nginx的模块编程

16.1 模块的种类

16.2 模块开发实践

16.2.1 “Hello_Nginx”模块编程实例

16.2.2 模块的结构

16.2.3 模块命名规则

16.3 模块的编译与安装

16.4 本章小结

第17章 Nginx在动态网站建设中的应用实例

17.1 Nginx在JSP网站建设中的应用

17.1.1 环境描述

17.1.2 特别模块说明

17.1.3 配置方案

17.2 Nginx在PHP网站建设中的应用

17.2.1 环境描述

17.2.2 特别模块说明

17.2.3 配置方案

17.3 Nginx+Perl脚本在网站建设中的应用

17.3.1 环境描述

17.3.2 特别模块说明

17.3.3 配置方案

17.4 本章小结

第18章 Nginx经典应用——LNAMP

18.1 LNAMP概述

18.2 手动部署和配置

18.2.1 环境准备

18.2.2 安装和配置MySQL

18.2.3 安装和配置Apache

18.2.4 安装 PHP

18.3 自动安装

18.4 本章小结

附录A Nginx内置变量

附录B 正则表达式语法

Nginx高性能Web服务器详解是2013年由电子工业出版社出版,作者苗泽。

得书感谢您对《Nginx高性能Web服务器详解》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢

本书从软件设计、编码和JVM虚拟机等维度,阐述性能优化的方法、技巧和思想,深度剖析JDK的实现,帮你大幅度提高Java开发水平。
SpringBoot+SpringCloud微服务开发实战 电子书

由浅入深,快速进阶,从理论到实战掌握Spring微服务开发核心功能和特性。
虚拟网络新技术 电子书

可作为网络工程相关技术专业人员的参考资料,也可作为计算机、通信、信息安全等相关专业研究生学习虚拟网络技术的参考书。
计算机网络安全 电子书

全面介绍计算机网络安全实施与防范技术。
虚拟化与网络存储技术 电子书

力求由浅入深,循序渐进。采用“任务驱动”的编写方式,以实际问题引出相关原理和概念。
Wireshark网络分析的艺术 电子书

Wireshark是当前流行的网络包分析工具。它上手简单,无需培训就可入门。很多棘手的网络问题遇到Wireshark都能迎刃而解。
企业WLAN架构与技术 电子书

从行业趋势、原理和实战案例等多角度介绍了与数据通信相关的网络架构和技术。