编辑: 丑伊 | 2019-07-15 |
magedu.com 版权信息 书名:马哥带你学 Nginx 从入门到精通 版权所属:马哥教育 马哥教育-IT 人的高薪职业学院 www.magedu.com 目录
第一章 Nginx 简介
6 1.1-Nginx 是什么.6 1.2-Nginx 产生.6 1.3 三大 WEB 服务器对比
7
第二章 Nginx 安装教程.13 2.1Nginx 的安装.13 2.2 图解教程.13
第三章 Nginx 基本概念.17 3.1 静态 HTTP 服务器.17 3.2 反向代理服务器.17 3.3 反向代理配置:18 3.4 负载均衡.19 3.4 虚拟主机.20 3.5FastCGI.22
第四章 Nginx 常用命令.24 4.1 启动 Nginx.24 4.2 停止 Nginx.24 马哥教育-IT 人的高薪职业学院 www.magedu.com 4.3 Nginx 重载配置.24 4.
4 指定配置文件.25 4.5 查看 Nginx 版本.25 4.6 检查配置文件是否正确.26 4.7 显示帮助信息
27
第五章 初探 Nginx 架构.28 5.1 进程模型.28 5.2nginx 进程操作
30 5.3 事件模型.31 5.4nginx 事件处理
32
第六章 Nginx 基础概念.38 6.1connection.38 6.2 request
43 6.3keepalive.49 6.4pipe
51 6.5lingering_close.52
第七章 基本数据结构
(一)55 7.1ngx_str_t.55 马哥教育-IT 人的高薪职业学院 www.magedu.com 7.2ngx_pool_t.64 7.3ngx_array_t.71 7.4ngx_hash_t.75 7.5ngx_hash_wildcard_t.79 7.6ngx_hash_combined_t.82
第八章 基本数据结构
(二)85 8.1ngx_hash_keys_arrays_t.85 8.2ngx_chain_t
90 8.3ngx_buf_t.92 8.4ngx_list_t.100 8.5ngx_queue_t
105
第九章 负载均衡简单配置实战.111 9.1 预装 nginx 软件.111 9.2 向web 服务器中放入测试文件.112 9.3 配置负载均衡服务器.113 9.4 拓展:117
第十章 反向代理同一域名的不同端口.122 10.1 实战场景.122 马哥教育-IT 人的高薪职业学院 www.magedu.com 10.2 网站域名.122 10.3 备选方案.122 10.4 最终配置.123 马哥教育-IT 人的高薪职业学院 www.magedu.com
第一章 Nginx 简介 1.1-Nginx 是什么 没有听过 Nginx?那么一定听过它的 同行 Apache 吧!Nginx 同Apache 一样都是一种 WEB 服务器.基于 REST 架构风格,以统一资源描 述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提供各种网络服 务. 然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规 模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同.这也使得 各个 WEB 服务器有着各自鲜明的特点. Apache 的发展时期很长,而且是毫无争议的世界第一大服务器.它有着很 多有点:稳定、开源、跨平台等等.但是由于它出现的时间太长了.它兴起的 年代,互联网产业远比不上现在.所以它被设计为一个重量级的.不支持高并 发的服务器.在Apache 上运行数以万计的并发访问,会导致服务器消耗大量 内存.操作系统对其进行进程或线程间的切换也消耗了大量的 CPU 资源,导致 HTTP 请求的平均响应速度降低. 这些都决定了 Apache 不可能成为高性能 WEB 服务器,轻量级高并发服务 器Nginx 和Lighttpd 就应运而生了. 1.2-Nginx 产生 马哥教育-IT 人的高薪职业学院 www.magedu.com 又是拜大神的时候了,这次被选中的人是俄罗斯的工程师 Igor Sysoev,他 在为 Rambler Media 工作期间,使用 C 语言开发了 Nginx.Nginx 作为 WEB 服务器一直为 Rambler Media 提供出色而又稳定的服务. 然后呢,Igor Sysoev 将Nginx 代码开源,并且赋予自由软件许可证. 由于: ? Nginx 使用基于事件驱动架构,使得其可以支持数以百万级别的 TCP 连接 ? 高度的模块化和自由软件许可证是的第三方模块层出不穷(这是个开源的时 代啊~) ? Nginx 是一个跨平台服务器,可以运行在 Linux, FreeBSD, Solaris, AIX, Mac OS, Windows 等操作系统上 ? 这些优秀的设计带来的极大的稳定性. 于是,duang 的一下.Nginx 火了. 1.3 三大 WEB 服务器对比 1.3.1 lighttpd Lighttpd 是一个具有非常低的内存开销,cpu 占用率低,效能好,以及丰 富的模块等特点.lighttpd 是众多 OpenSource 轻量级的 web server 中较为 优秀的一个.支持 FastCGI, CGI, Auth, 输出压缩(output compress), URL 重写, Alias 等重要功能. 马哥教育-IT 人的高薪职业学院 www.magedu.com Lighttpd 使用 fastcgi 方式运行 PHP,它会使用很少的 PHP 进程响应很大的并 发量. Fastcgi 的优点在于: ? 从稳定性上看, fastcgi 是以独立的进程池运行来 cgi,单独一个进程死掉,系统 可以很轻易的丢弃,然后重新分配新的进程来运行逻辑. ? 从安全性上看, fastcgi 和宿主的 server 完全独立, fastcgi 怎么 down 也不 会把 server 搞垮, ? 从性能上看, fastcgi 把动态逻辑的处理从 server 中分离出来, 大负荷的 IO 处理还是留给宿主 server, 这样宿主 server 可以一心一意作 IO,对于一个普 通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态 IO 处理 完全不需要逻辑程序的参与 ? 从扩展性上讲, fastcgi 是一个中立的技术标准, 完全可以支持任何语言写的 处理程序 php,Java,Python 1.3.2 Apache apache 是世界排名第一的 web 服务器, 根据 netcraft 所作的调查,世界上 百分之五十以上的 web 服务器在使用 apache.