一、nginx基础
1.1 Nginx介绍
Nginx(读作"engine X” /ɛndʒɪnˈɛks/)是一个 web 服务器,也可以用作反向代理服务、 负载均衡器、邮件代理服务和 HTTP 缓存服务。该软件由俄罗斯的 Igor Sysoev 开发, 并于 2004 年首次公开发布。同名的 nginx 是一家成立于 2011 年的公司,为开源的 nginx 提供支持以及开发和维护另一款付费软件 Nginx plus
2019 年 3 月,Nginx 公司被 F5 Networks 以 6.7 亿美元收购。截至 2019 年 8 月, Netcraft 估计 Nginx 为 32%的活跃网站提供服务,排名第一,略高于 Apache 的 29%
根据Netcraft 公司官网每月公布的全球 Web 服务器调查报告“[Web Server Survey](October 2020 Web Server Survey | Netcraft News)”是当前人们了解全球网站数量以及服务器市场分额情况的主要参考依据,2020年 10月份的报告目前已经发布
Netcraft 估计的各软件的占有率
Nginx 历经⼗⼏年的迭代更新(https://nginx.org/en/CHANGES), ⽬前功能已经⾮常完善 且运⾏稳定,另外 Nginx 的版本分为开发版、稳定版和过期版,Nginx 以功能丰富著称,它 既可以作为 http 服务器,也可以作为反向代理服务器或者邮件服务器,能够快速的响应静态 ⽹⻚的请求,⽀持 FastCGI/SSL/Virtual Host/URLRwrite/Gzip/HTTP Basic Auth/http 或者 TCP 的负载均衡等功能,并且⽀持第三⽅的功能扩展。
另外,其在响应静态资源请求时所消耗内存 apache 少得多,平均处理请求数量时候 apache 的四倍。且国内的各大一线互联网公司如天猫、淘宝、⼩⽶、网易 163、京东和新浪等都在用 nginx 或者进行二次开发,如淘宝的 Tengine 就是基于 nginx 的二次开发软件
1.2 Nginx功能介绍
1.2.1 基础特性
-
基础特性
-
模块化设计,具有较好的扩展性
-
⾼可靠性
-
⽀持热部署:不停机更新配置⽂件,升级版本和更换⽇志⽂件
-
低内存消耗:10000 个 keep-alive 连接模式下的⾮活动连接,仅需 2.5M 内存
-
自 2004 年发布以来,nginx 一直专注于高性能、高并发性和低内存使用。另外, 在 I/O 操作层面上,其支持 event-driven 事件驱动的 I/O,POSIX AIO1 异步 I/O mmap 内存映射和 sendfile 机制等等加速 I/O 的特性。这些特性都是其性能远胜 apache 的原因。
-
基本功能
-
静态资源的 web 服务器
-
http 协议反向代理服务器
-
pop3/imap4 协议反向代理服务器
-
FastCGI(LNMP),uWSGI(python)等协议
-
模块化(⾮ DSO),需要编译,如 zip,SSL 模块
-
1.2.2 Nginx 与 web 服务相关的功能
-
主要功能
-
支持虚拟主机(server)
-
⽀持 keep-alive 和管道连接(利⽤⼀个连接做多次请求)
-
访问⽇志(⽀持⽇志缓冲提⾼其性能)
-
url rewirte
支持 URL 重写 -
支持路径别名
-
基于 IP 及⽤⼾的访问控制
-
⽀持速率限制及并发数限制
-
重新配置和在线升级⽽⽆须中断客⼾的⼯作进程
-