Nginx 详细介绍

Nginx 和 Apache 一样是 http 服务器软件。它们的区别是 Apache 的处理速度慢,占用内存资源, nginx 恰恰相反。在功能上 Apache 的所有模块都支持动和静态编译,而 nginx 模块全是静态编译 的! Apache 对 fastcgi 的支持不好,而 nginx 对 FastCGI 支持非常好!

 

Nginx 的优势

 

作为 web 服务器处理静态文件,索引文件,自动索引的效率非常高 作为代理服务器,可以实现无缓存的反向代理,提高网站运行速度 作为负载均衡服务器,可以在内部直接支持 Rails 和 PHP 等 性能方面,采用 epoll 模型,可以支持多并发并且占用低内存

稳定方面,采取分段资源分配技术,CPU 与内存占用率非常低类似 DOS 攻击对 nginx 基本无作用 高可用方面,支持热部署,启动迅速,可以在不间断服务的情况下,直接升级,7X24 小时不间断运 行

 

Nginx 的模块和工作原理

 

 

Nginx 由内核和模块组成。模块结构分为核心模块,基础模块,第三方模块

 

核心模块:http 模块,event 模块,mail 模块

 

基础模块:http FastCGI 模块,http proxy 模块,http rewrite 模块

 

第三方模块:http upstream request hash 模块,notice 模块,http access key 模块 模块从功能上分为如下三类:

Handlers(处理器模块):直接处理请求,并进行输出内容和修改 headers 信息操作,只有一个 Filters(过滤模块): 主要对其他处理器模块输出的内容进行修改操作,最后由 nginx 输出案例故障汇 总

Proxies(代理类模块):主要与后端一些服务比如 FastCGI 进行交互,实现代理和负载均衡 在工作方式上:

单工作进程(默认):除主进程外,还有一个工作进程 多工作进程:每个进程包含多个线程

Naginx 模块之间被编译进 Nginx,因此属于静态编译方式!然后将模块编译为一个 so 文件,在配 置文件中指定是否加载!

 

master 进程主要用来管理 worker 进程,具体包括如下 4 个主要功能:

 

(1)接收来自外界的信号。

 

(2)向各 worker 进程发送信号。

 

(3)监控 woker 进程的运行状态。

 

(4)当 woker 进程退出后(异常情况下),会自动重新启动新的 woker 进程。

 

woker 进程主要用来处理网络事件,各个 woker 进程之间是对等且相互独立的,它们同等竞 争来自客户端的请求,一个请求只可能在一个 woker 进程中处理,woker 进程个数一般设置为机器 CPU 核数。

posted @ 2019-08-09 16:37  樊伟胜  阅读(204)  评论(0编辑  收藏  举报