加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

说明 | Nginx为什么快到停不下来?

发布时间:2021-06-01 21:47:11 所属栏目:创业 来源:互联网
导读:HTTP 毗连成立和哀求处理赏罚进程 Nginx 启动时,Master 历程,加载设置文件 Master 历程,初始化监听的 socket Master 历程,fork 出多个 Worker 历程 Worker 历程
HTTP 毗连成立和哀求处理赏罚进程

Nginx 启动时,Master 历程,加载设置文件

Master 历程,初始化监听的 socket

Master 历程,fork 出多个 Worker 历程

Worker 历程,竞争新的毗连,得胜方通过三次握手,成立 Socket 毗连,并处理赏罚哀求

Nginx 高机能、高并发

Nginx 回收:多历程 + 异步非阻塞方法(IO 多路复用 epoll)

哀求的完备进程:

成立毗连

读取哀求:理会哀求

处理赏罚哀求

相应哀求

哀求的完备进程,对应到底层,就是:读写 socket 变乱

Nginx 的变乱处理赏罚模子

request:Nginx 中 http 哀求。

根基的 HTTP Web Server 事变模式:

吸取哀求:逐行读取哀求行和哀求头,判定段有哀求体后,读取哀求体

处理赏罚哀求

返反相应:按照处理赏罚功效,天生响应的 HTTP 哀求(相应行、相应头、相应体)

Nginx 也是这个套路,整体流程同等。

nginx的模块按照其成果根基上可以分为以下几种范例:

event module: 搭建了独立于操纵体系的变乱处理赏罚机制的框架,及提供了各详细变乱的处理赏罚。包罗ngx_events_module, ngx_event_core_module和ngx_epoll_module等。nginx详细行使何种变乱处理赏罚模块,这依靠于详细的操纵体系和编译选项。

phase handler: 此范例的模块也被直接称为handler模块。首要认真处理赏罚客户端哀求并发生待相应内容,好比ngx_http_static_module模块,认真客户端的静态页面哀求处理赏罚并将对应的磁盘文件筹备为相应内容输出。

output filter: 也称为filter模块,首要是认真对输出的内容举办处理赏罚,可以对输出举办修改。譬喻,可以实现对输出的全部html页面增进预界说的footbar一类的事变,可能对输出的图片的URL举办替代之类的事变。

upstream: upstream模块实现反向署理的成果,将真正的哀求转发到后端处事器上,并从后端处事器上读取相应,发回客户端。upstream模块是一种非凡的handler,只不外相应内容不是真正由本身发生的,而是从后端处事器上读取的。

load-balancer: 负载平衡模块,实现特定的算法,在浩瀚的后端处事器中,选择一个处事器出来作为某个哀求的转发处事器。

常见题目分解

Nginx vs. Apache

收集 IO 模子:

nginx:IO 多路复用,epoll(freebsd 上是 kqueue )

高机能

高并发

占用体系资源少

apache:阻塞 + 多历程/多线程

更不变,bug 少

模块更富厚

场景:

处理赏罚多个哀求时,可以回收:IO 多路复用 可能 阻塞 IO +多线程

IO 多路服用:一个 线程,跟踪多个 socket 状态,哪个停当,就读写哪个;

阻塞 IO + 多线程:每一个哀求,新建一个处事线程

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读