Nginx系列(二)--模块化
2015-07-01 07:58
357 查看
高度模块化的设计设Nginx架构的基础。在Nginx中,除了少量的核心代码,其他一切皆为模块。模块化设计具有以下特点:
1、高度抽象的模块接口
2、灵活性
3、配置模块的设计使Nginx提供了高可配置性、高可扩展性、高可定制性、高可伸缩性。
4、核心模块接口简单化
5、多层次、多类别的模块设计
所有模块间是分层次、分类别的,官方Nginx有五大类型的模块:核心模块、配置模块、事件模块、HTTP模块、mail模块。
配置模块和核心模块这两种模块类型是由Nginx的框架代码所定义的,这里的配置模块是所有模块的基础,它实现了最基本的配置项解析功能(解析nginx.conf文件)。Nginx框架还会调用核心模块,但其他三种模块都不会与框架产生直接关系。事件模块、HTTP模块、mail模块这三种模块的共性是:实际上它们在核心模块中各有1个模块作为自己的代言人,并在同类模块中有1个作为核心业务与管理功能的模块。
Nginx模块直接被编译仅Nginx,因此属于静态编译方式。启动Nginx后,Nginx的模块被自动加载,不像Apache,首先将模块编译为一个so文件,然后再配置文件汇总指定是否进行加载。在解析配置文件时,Nginx的每一个模块都有可能去处理某个请求,但是同一个处理请求只能由一个模块来完成。
1、高度抽象的模块接口
2、灵活性
3、配置模块的设计使Nginx提供了高可配置性、高可扩展性、高可定制性、高可伸缩性。
4、核心模块接口简单化
5、多层次、多类别的模块设计
所有模块间是分层次、分类别的,官方Nginx有五大类型的模块:核心模块、配置模块、事件模块、HTTP模块、mail模块。
配置模块和核心模块这两种模块类型是由Nginx的框架代码所定义的,这里的配置模块是所有模块的基础,它实现了最基本的配置项解析功能(解析nginx.conf文件)。Nginx框架还会调用核心模块,但其他三种模块都不会与框架产生直接关系。事件模块、HTTP模块、mail模块这三种模块的共性是:实际上它们在核心模块中各有1个模块作为自己的代言人,并在同类模块中有1个作为核心业务与管理功能的模块。
Nginx模块直接被编译仅Nginx,因此属于静态编译方式。启动Nginx后,Nginx的模块被自动加载,不像Apache,首先将模块编译为一个so文件,然后再配置文件汇总指定是否进行加载。在解析配置文件时,Nginx的每一个模块都有可能去处理某个请求,但是同一个处理请求只能由一个模块来完成。
相关文章推荐
- Nginx系列(一)--nginx是什么?
- nginx+thinkphp下解决不支持pathinfo模式
- nginx负载均衡配置的几种策略
- linux下nginx+php-fpm运行用户以及资源目录的权限
- ubuntu下nginx安装、基本配置及常用命令
- nginx+thinkphp下解决不支持pathinfo模式以及存在的各种404,500问题
- 关于nginx架构探究(4)
- nginx启动脚本
- nginx配置www.conf
- Nginx启动出错 error while loading shared libraries
- Web代理服务器nginx在linux中的使用
- Nginx配置之location模块和proxy模块
- Nginx配置之location模块和proxy模块
- nginx unknow log_format access in www.conf解决方法
- Linux下安装nginx
- Apache与Nginx的优缺点比较
- Nginx代理文件配置
- nginx 301 302跳转配置方法 与 总结
- 针对OpenSSL安全漏洞调整Nginx服务器的方法
- Windows下Nginx的安装与配置(转)