首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx服务器进程

Nginx服务器进程有3类:主进程、工作进程、缓存进程 (1)主进程 Nginx启动时运行的主要进程,主要功能是与外界通信和对内部其他进程进行管理 主要工作内容 1)读取配置文件,验证有效性和正确性...2)建立、绑定、关闭 socket 3)按照配置生成、管理、结束工作进程 4)接收指令,如 重启、升级、退出 5)不中断服务,平滑重启、升级,升级失败的回滚处理 6)开启日志文件,获取文件描述符 (2)...工作进程 由主进程生成,生成数量由配置文件指定,工作进程生存于主进程的整个生命周期 主要工作内容 1)接收请求 2)将请求依次送入各个功能模块进行过滤处理 3)IO调用,获取响应数据 4)与后端服务器通信...,接收后端服务器处理结果 5)数据缓存,访问缓存索引、查询、调用缓存数据 6)发送请求结果 7)接收主进程指令,如 重启、升级、退出 (3)缓存进程 缓存进程有两类 1)缓存索引重建进程 nginx启动后由主进程生成...,在缓存元数据重建完成后就自动退出 该进程启动后,对缓存文件的目录结构扫描,在内存中建立索引元数据库 2)缓存索引管理进程 生存于主进程的整个生命周期 负责在索引元数据更新完成后,对元数据是否过期进行判断

4.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

NGINX工作进程模型

NGINX是如何工作的? NGINX使用可预测的进程模型,该模型根据可用的硬件资源进行调整: 主进程执行特权操作,如读取配置和绑定到端口,然后创建少量子进程(接下来的三种类型)。...image.png 每个 NGINX 工作进程都使用 NGINX的配置进行初始化,并由主进程提供一组侦听套接字。...阻塞状态机 回想一下我们将进程或线程描述为操作系统可以安排在 CPU 内核上运行的独立指令集。大多数 Web 服务器和应用程序使用每个连接的进程或线程模型进行工作。...当有客户端浏览器发起请求时,Web服务器就会进行响应并进入到阻塞状态。 在这一阶段,Web 服务器进程会在一定时间内继续与客户端保持会话。...此架构简单且易于使用第三方模块进行扩展。 NGINX 工作进程的不同之处是每个worker进程(通常每个 CPU 内核对应一个worker进程)可以同时连接数十万个连接。

77800

Nginx技术总结之二——Nginx进程模型

接上篇:Nginx技术总结之一——Nginx模块与工作原理 二. Nginx进程模型 Nginx进程模型,可以由下图来表示: ?...在工作方式上,Nginx 分为单工作进程和多工作进程两种模式。 单工作进程模式:除主进程外,还有一个工作进程,工作进程是单线程的; 多工作进程模式:每个工作进程包含多个线程。...Nginx 默认为单工作进程模式; Nginx 在启动后,会有一个 master 进程和多个 worker 进程。...master 进程充当整个进程组与用户的交互接口,同时对进程进行监护。...我们还是拿 reload 来说,我们看到,执行命令时,我们是启动一个新的 nginx 进程,而新的 nginx 进程在解析到 reload 参数后,就知道我们的目的是控制 nginx 来重新加载配置文件了

1.7K10

重识Nginx - 14 Nginx进程结构

文章目录 Nginx的请求处理流程 Nginx的多进程结构 Nginx进程结构演示 关键配置 查看ng进程 信号说明 reload 观察 worker进程的pid 向Master 进程 发送 SIGHUB...向worker进程 发送 SIGTERM ---- Nginx的请求处理流程 ---- Nginx的多进程结构 Worker进程 处理请求, Master进程管理Worker进程。...多进程模式避免了多线程共享同一个地址空间,某一个模块引发了段错误时,在地址越界出现时,会导致整个Nginx不可用。 因此Nginx采用多进程,在设计上保证了高可用。...Nginx 期望一个worker进程使用一颗cpu, 把某个worker进程和某个cpu绑定在一起,可以更好地使用cpu上的缓存,来减少缓存失效的命中率。...其中master的pid 为 994792 , 两个worker进程是由master进程启动的, 其中 pid 分别为 994793 和 994794 ---- 信号说明 信号说明: 重识Nginx

24840

nginx进程架构详解

我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使nginx以单进程方式运行。...nginx采用多进程的方式有诸多好处,所以我就主要讲解nginx的多进程模式吧。 刚才讲到,nginx在启动后,会有一个master进程和多个worker进程。...这样,我们就可以并发处理大量的并发了,当然,这里的并发请求,是指未处理完的请求,线程只有一个,所以同时能处理的请求当然只有一个了,只是在请求间进行不断地切换而已,切换也是因为异步事件未准备好,而主动让出的...我之前有对连接数进行过测试,在24G内存的机器上,处理的并发请求数达到过200万。现在的网络服务器基本都采用这种方式,这也是nginx性能高效的主要原因。...现在,知道了nginx为什么会选择这样的进程模型与事件模型了。对于一个基本的web服务器来说,事件通常有三种类型,网络事件、信号、定时器。从上面的讲解中知道,网络事件通过异步非阻塞可以很好的解决掉。

2.4K10

Nginx进程模型(五)

分为两种: ● master 进程:主进程 ● worker 进程:工作进程 可以看现在启动的 nginx 进程情况 [root@study nginx]# ps -ef | grep nginx root...● 某个 work 异常了,可以直接干掉,而不会影响其他的 work Nginx 的并发性能很棒,可达到几万甚至几十万,那么我们看看看,一个连接过来之后,如何与 work 进行连接上的呢?...accept_mutex) ,抢占成功的 worker 进行处理 传统服务器事件处理 最大的问题就是 同步阻塞,如下图所示 一个 worker 同时只能处理一个 client 请求,当一个请求被阻塞时...,就不能处理其他的请求了,只能 fork 出新的 worker 出来,接受新的请求 Nginx 事件处理 解决问题的关键就是 异步非阻塞,如下图所示 当 3 个请求落在一个 work 上时,当一个...client 阻塞时,它会去处理另外一个请求,而不是像传统服务器那样就卡住了 所以,nginx 只需要少量的 work 就可以处理大量的请求 对于默认的并发处理能力,也可以通过 worker_connections

27120

Nginx 进行性能配置

总所周知,网络上我们购买的服务器的性能各不相同,如果采用 Nginx 的默认配置的话,无法将服务器的全部性能优势发挥出来,我们应该选择适合自己需求的配置。...实例文件如下: user ubuntu ubuntu; # 创建用户和用户组 worker_processes 2; # 开启2个工作进程(2 核 CPU,至少应该为 CPU 的每一个核分配一个工作进程...) worker_priority 0; # worker 进程会在一个适当的优先级启动。...改完 nginx.conf 文件后,我们直接浏览器中访问服务器器 IP 地址,如果浏览器能正确输出下列界面,即证明我们的配置文件是有效的,否则重新检查配置文件,修改配置,直到能正确访问。 ?...接下来我们可以来进行服务器性能测试,来评估服务器性能。 这里我使用的是 httperf 模块,Ubuntu 自带,没有的话通过下列指令安装。

29420

04-Nginx进程模型解析

Nginx进程模型解析 master进程: 主进程 worker进程: 工作进程 默认是一个主进程, 一个工作进程, Nginx的工作进程是可以通过配置文件进行修改的 # 工作进程数量 worker_processes...1; 修改nginx.conf配置, 修改为2 记得每次修改完成配置文件都进行检查一下, 避免发生错误 检查完成没有问题, 就可以重启Nginx了, 修改完成Nginx必须重启, 不然配置无法生效...重启完成后,再次查看, 工作进程变成了2个 执行过程 客户端发送请求到Master, 然后通过master进行请求分发, 到不同的worker, 然后通过worker与client进行交互 Worker...抢占机制 worker在与client交互的过程中, 会需要进行锁的抢占, 谁争取到了,就进行处理, 没有争取到的进入等待 传统服务器事件处理 在传统的事件服务器中, 一个工作进程只能在同一时间处理一个客户端的请求...这也是BIO的典型问题 Nginx事件处理 在Nginx的事件处理中, 一个工作进程可以在同一时间处理多个客户端的请求, 一个客户端请求发生阻塞, 并不会影响到该进程处理其他的请求, 这就是为了解决

19020

nginx服务器

1.nginx软件安装 useradd nginx tar -zxvf nginx-1.7.10.tar.gz cd nginx-1.7.10 ....启动脚本 3.nginx进程管理 启动nginx服务,sbin/nginx -c conf/nginx.conf 常用选项 -v:查看nginx版本 -V:查看编译参数 -t:测试默认配置文件...-c:指定配置文件 停止nginx:pkill -9 nginx 4.平滑升级nginx tar axf nginx-1.8.0.tar.gz cd nginx-1.8.0 ....目前支持四种分配方式: 轮询:默认的,逐一循环调度 weight:权重,指定轮询几率,权重值和访问比率成正比 ip_hash:根据客户端IP分配固定的后端服务器 Fair:按后端服务器响应时间短的优先分配...服务组主机状态: down:表示server暂时不参与负载 max_fails:允许请求失败的次数,默认为1 fail_timeout:max_fails次失败后,暂停提供服务的时间 backup:备份服务器

75010

Nginx进程结构模型

上一篇我们介绍了Nginx的是适用场景。今天我们来介绍一下Nginx进程结构模型。 nginx 分为两种进程结构:单进程 / 多进程。...单进程模型下主进程就是工作进程,此时没有监控进程,主要是用于调试用。 我们生产环境主要是使用多进程模型。所以我们主要介绍多进程模型。 多进程模型下Nginx启动后会有多个进程。...cache类进程 有cache manager / cache loader。 这些进程之间会相互进行通信,以传递一些信息(主要是监控进程往工作进程传递)。...除了自身进程之间的相互通信,Nginx还凭借强悍的功能模块与外界四通八达,比如通过upstream与后端Web服务器通信、依靠fastcgi与后端应用服务器通信等。...那么有没有想过Nginx为什么采用多进程结构,而不是多线程结构呢? Nginx要保持它自身的高可靠性,如果使用多线程模型,多线程之间是共享同一个地址空间的。

46710

Nginx服务器

Nginx介绍 Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。...当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。...yum install -y pcre pcre-devel zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装.../nginx 查看进程 ps aux | grep nginx ? 浏览器输入虚拟机的IP即可访问(默认为80端口,相当于啥也不用写) ? 访问不了的话,一般是防火墙的问题。...负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

1K40

Nginx技术总结之三——Nginx进程IO模型

接上篇:Nginx技术总结之二——Nginx进程模型 三. Nginx 的多进程 IO 模型 参考地址:《为啥性能高?...Nginx架构初探》 3.1 多进程 IO 模型的优点 首先,对于每个 worker 进程来说,独立的进程不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。...一个 worker 进程可以同时处理的请求数只受限于内存大小,而且在架构设计上,不同的 worker 进程之间处理并发请求时几乎没有同步锁的限制,worker 进程通常不会进入睡眠状态,因此,当 Nginx...这对操作系统来说,进程带来的内存占用非常大,进程的上下文切换带来的 CPU 开销很大,性能自然就上不去了,同时这些开销完全是没有意义的。 为什么 Nginx 可以采用异步非阻塞的方式来处理?...非阻塞就是,事件没有准备好,马上返回 EAGAIN,就是等到时间准备好再进行通知,或者过一会再来检查一下事件,直到事件准备好了为止,在这期间,你就可以先去做其它事情,然后再来看看事件好了没。

1.1K30

进程服务器

一、思路 先与客户端建立好连接, 每次监听到一个客户端之后,都需要产生一个子进程去处理这个连接,然后父进程继续去等待监听,唯一一个要注意的点就是要使用信号来监听子进程是否结束,从而对其进行回收,防止僵尸进程的产生...&opt, sizeof(opt)); (3)bind函数 bind(lfd, (struct sockaddr*)&ser_addr, sizeof(ser_addr));b这个函数主要目的就是将服务器的地址结构绑定到套接字...lfd上,所以开始要设置服务器的ser_addr:ser_addr.sin_family = AF_INET, ser_addr.sin_port = htons(8888);ser_addr.sin_addr.s_addr...为了得到客户端的地址结构:也就是cli_addr,这个不需要初始化,因为accept函数会设置好,要注意的是cli_addr_len要初始化为sizeof(cli_addr),不然会报错;(2)会返回与客户端进行的通信的套接字...cfd; 2、创建子进程 监听到了客户端后,就要开始创建子进程来对这个监听进行处理;pid = fork() 3、子进程处理通信 因为子进程不需要监听连接,使用可以close(lfd);之后便可以进行通信处理

4.7K20

centos7 nginx安装启动进程状态杀掉进程

执行目录:/usr/sbin/nginx      模块所在目录:/usr/lib64/nginx/modules      配置所在目录:/etc/nginx/      默认站点目录:/usr/share.../nginx/html      主要配置文件:/etc/nginx/nginx.conf 指向:/etc/nginx/conf.d/default.conf      PID目录:/var/run/nginx.pid...nginx.service     systemctl status nginx.service 5、查看nginx的状态及进程与端口(启动后)     命令1:systemctl status nginx.service...命令4:ps aux | grep nginx(查看nginx进程运行状态)or ps aux | grep :80 | grep -v grep(过虑grep本身) ?...6、杀掉进程命令     a)相关nginx进行全部杀掉:killall -9 nginx       b)把PID两个进程杀掉:kill -9 pid1 and kill -9 pid1  ?

3.8K50
领券