大锤讲解linux运维之道
Nginx的工作模式
Nginx一共有两种工作模式一个是多进程一个是单进程.
非阻塞、事件驱动、由一个master进程生成多个worker线程,单进程指单个不在生成多个进程.
worker个数取决与cpu数量,一个worker同时可以响应多个请求,因为每一个请求或连接进来我们都得给它一个套接字,因此套接字所谓TCP来讲最大数量端口也只有65535个,但服务器本身同时也在用,系统再保留一些,所以可以使用4到5万个就已经很不错了.一般情况下达到3万就差不多 了,这也关系到电脑的系统能力差异.
多进程的优点
同时支持多个进程,支持高并发量,提高访问速度,当单个worker进程挂掉之后master将会再生成worker进程,同时支持平滑升级等
单进程
大多数用于再开发,测试下用,不支持平滑升级,单个进程挂断之后,系统无法重启,一般用的很少
Nginx的模块类型
Nginx刚才说过它是模块化的,因此有众多模块,那模块类型有哪些呢?无非就这样几个:(在官方文档中是这么分类的)
核心模块
Standard HTTP modules(标准的http协议模块)
Optional HTTP modules(可选的http协议模块)
Mail modules
3rd party modules
注意,前四种模块Nginx都自带,第五种模块,也就是所谓的第三方模块我们需要在编译Nginx的时候自己手动指定模块在何处,自己手动指明模块文件。而后在编译时才能把它编译成Nginx的组成部分。