1 概述
Nginx (engine x)分为开源和商业版,是单进程响应用户的并发请求,没有线程的概念,特点是有很多模块组成的。处理静态页面时http的10倍效率,可以实现30000的并发进程,http一般是只能达到10000的并发。二次开发版本有Tengine和 OpenResty,官网是http://nginx.org
本文将介绍nginx的特性,功能和相关模块
2 概念介绍
2.1 nginx架构图
nginx的程序是master/worker结构
.一个master进程:负载加载和分析配置文件、管理worker进程、平滑升级
.一个或多个worker进程:处理并响应用户请求
.缓存相关的进程:
cache loader:载入缓存对象
cache manager:管理缓存对象
架构图如下
2.2 nginx特性
.模块化设计,较好的扩展性
.高可靠性
.支持热部署:不停机更新配置文件,升级版本,更换日志文件
.低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需要2.5M内存
.支持event-driven,aio,mmap,sendfile
2.3 nginx功能
2.3.1 基本功能:
.静态资源的高性能web服务器,处理html,图片,js,css,txt等静态资源
. tcp/udp协议反向代理服务器:实现三个功能,一、负载均衡,相当于调度器,转发数据到后端服务器,实现LVS一样的功能,二、客户端没有直接接触服务器,更加安全。三、缓存,可以加速访问。
. IMAP/POP3/SMTP协议反向代理服务器
. 通用的TCP/ UDP代理服务器
. 结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求
.模块化(非DSO),如zip,SSL模块
2.3.2 nginx web服务相关的功能
1)虚拟主机(server)
2)支持keep-alive和管道连接
3)访问日志(支持基于日志缓冲提高其性能)
4)url rewirte
5)路径别名
6)基于IP及用户的访问控制
7)支持速率限制及并发数限制
8)Memcached的GET 接口
9)重新配置和在线升级而无须中断客户的工作进程,比如升级过程,旧的主进程会被关掉,同时开启一个新版本的主进程。但是,旧的子进程不受影响,会继续处理旧的请求,直到把旧请求处理完成才关掉该旧子进程。此时新版本的主进程会开启新的子进程,用来接收新的请求,实现了平滑过渡。
2.4 nginx模块
.nginx高度模块化,模块表现为各种文件,但其模块早期不支持DSO机制;1.9.11版本支持动态装载和卸载
.模块分类:三大类
a)核心模块:coremodule
b)标准模块:分为三类
1)HTTP 模块:ngx_http_*
HTTP Core modules 默认功能
HTTP Optional modules 需编译时指定
2)Mail模块ngx_mail_*
3)Stream 模块ngx_stream_*
c)第三方模块
转载于:https://blog.51cto.com/ghbsunny/1976183