Nginx 介绍及日常管理的详解
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。本文简要描述了Nginx的基本特性及其配置文件的简单描述。
一、Nginx的工作进程
1、一个主进程: 主进程的主要目的是读取和评估配置,启动、终止及维护工作进程以及创建、绑定及关闭套接字。 2、多个工作进程: 工作进程处理web请求。nginx的采用了基于事件的模型和操作系统相关的机制,有效地分配工作进程之间的请求。 负责解析http协议;提供反向代理及过滤功能;nginx任何能完成的其它任务; 工作进程的数量被定义在配置文件中,可以使用配置文件定义固定的数量,或根据可用的CPU内核数实现自动调整其数量。3、缓存加载器(cache loader): 检查缓存存储中的缓存对象; 使用缓存元数据建立内存数据库; 接收、传入并处理来自客户端的连接;4、缓存管理器(cache manager): 缓存的失效及过期检验;5、基于配置文件定义Nginx的工作方式 nginx的工作方式及其模块的工作是在配置文件中确定的。 缺省情况下,其配置文件为nginx.conf,通常位于/usr/local/nginx/conf, /etc/nginx, 或者/usr/local/etc/nginx目录下。
二、Nginx特性
1、Nginx的模块化特性 Nginx服务器与Apache httpd类似,采用了基于模块化的构建方式。 在安装部署Nginx服务器时,一定要遵循:最小化模块安装,以节省无用模块对Nginx的性能影响及占用系统资源。 a、从功能上划分 Nginx核心模块:包括Nginx的内核模块和事件驱动模块 http服务器模块:这类模块包括三类模块,即HTTP的内核模块和标准模块以及可选的HTTP模块 b、从发布模块的方式来划分 官方模块 第三方模块 c、从模块的可选项来划分 必选模块(Main和Events) 可选模块2、Nginx功能特性 模块化设计、较好扩展性 高可靠性 master-->worker 低内存消耗 10000个keep-alive连接在Nginx仅消耗2.5MB 支持热部署 不停机而更新配置文件、更换日志文件、更新服务器程序版本 基本功能: 静态资源的web服务器,能缓存打开的文件描述符; http, smtp, pop3协议的反向代理服务器,缓存、负载均衡; 支持FastCGI (fpm); 模块化,非DSO机制,过滤器zip,SSI及图像大小调整; 支持SSL; 非阻塞、事件驱动、一个master生成一个或多个worker, 每个worker响应n个请求; 扩展功能: 基于名称和IP的虚拟主机; 支持keepalive 支持平滑升级 定制访问日志 ,支持使用日志缓冲区提高日志存储性能 支持url rewrite 支持路径别名 支持基于IP及用户的访问控制 支持速率限制,支持并发数限制 Nginx的基本架构: 一个master进程,生成一个或多个worker 事件驱动: epoll, kqueue, /dev/poll (event ports) 消息通知:select, poll, rt signals 支持sendfile, sendfile64 支持AIO 支持mmap 模块类型: 核心模块 Standard HTTP modules Optional HTTP modules Mail modules 3rd party modules
新闻热点
疑难解答