Nginx工作原理

天翼云开发者社区
• 阅读 157

本文分享自天翼云开发者社区《Nginx工作原理》,作者:王****秀

Nginx的进程模型 Nginx服务器由一个Master进程和多个Worker进程组成:

Master进程:管理Worker进程。对外接口:接收外部的操作(信号);对内转发:根据外部操作的不同,通过信号管理Worker;监听:监控Worker进程的运行状态,Worker进程异常终止后,自动重启Worker进程。

Worker进程:所有Worker进程都是平等的,用于处理网络请求。进程数量:在nginx.conf中配置,一般设置为核心数,充分利用CPU资源,同时,避免进程数量过多,避免进程竞争CPU资源,增加上下文切换的损耗。

HTTP连接建立和请求处理过程 Nginx启动时,Master进程加载配置文件。 Master进程,初始化监听的Socket。 Master进程,Fork出多个Worker进程。 Worker进程,竞争新的连接,获胜方通过三次握手,建立Socket连接,并处理请求。

Nginx 高性能、高并发 Nginx 采用多进程+异步非阻塞方式(IO 多路复用 Epoll)。 请求的完整过程:建立连接→读取请求→解析请求→处理请求→响应请求。 请求的完整过程对应到底层就是:读写 Socket 事件。

点赞
收藏
评论区
推荐文章
Easter79 Easter79
2年前
Supervisor中启动netcore网站
1.安装配置Supervisorsupervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功
Stella981 Stella981
2年前
Nginx之进程间的通信机制(共享内存、原子操作)
1\.概述Linux提供了多种进程间传递消息的方式,如共享内存、套接字、管道、消息队列、信号等,而Nginx框架使用了3种传递消息的传递方式:共享内存、套接字、信号。在进程间访问共享资源时,还需要提供一种机制使各个进程有序、安全地访问资源,避免并发访问带来的未知结果。Nginx主要使用了3种同步方式:原子操作、信号量、
Stella981 Stella981
2年前
Nginx 作为web server 的优化要点
常用优化要点nginx使用的是固定数量的workers,每个worker都处理进入的请求。最佳实践是每个CPU内核配置一个worker.如何知道您的系统有几个CPU?$ grep ^processor /proc/cpuinfo | wc l对于一个四核处理器,配置文件类似:\Oneworkerper
Stella981 Stella981
2年前
Nginx配置文件nginx.conf详解
usernginx;用户worker\_processes8;工作进程,根据硬件调整,大于等于cpu核数error\_loglogs/nginx\_error.logcrit;错误日志pidlogs/nginx.pid;pid放置的位置worker\_rlimit\_nofi
Stella981 Stella981
2年前
Nginx配置参数中文详细说明
Nginx配置参数中文详细说明定义Nginx运行的用户和用户组userwwwwww;nginx进程数,建议设置为等于CPU总核心数.worker_processes8;全局错误日志定义类型,debug|info|notice|
Stella981 Stella981
2年前
LVS、nginx
lvs 工作在第四层 所以受到的主要限制 是CPU、网卡瓶颈限制 服务器一般都是千兆  对于操作系统来说是工作在内核空间nginx 工作在第七层 受到的限制 CPU、网卡、内存都会有,而且受操作系统影响,每处理一个请求都要消耗一定的内存, 单个nginx进程处理能力有限,一般用CPU个数进程,lvs的负载能力要强于nginx,但功能上
Wesley13 Wesley13
2年前
NGINX 详细配置信息
运行用户usernobody;启动进程,通常设置成和cpu的数量相等worker_processes1;全局错误日志及PID文件error_loglogs/error.log;error_loglogs/error.lognotice;err
Stella981 Stella981
2年前
PHP FastCGI进程管理器PHP
!(http://static.oschina.net/uploads/space/2015/0919/222219_6hEX_561214.jpg)一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefor
Stella981 Stella981
2年前
Python process (进程)
进程(process)进程是对各种资源管理的集合,包含对各种资源的调用、内存的管理、网络接口的调用进程要操作CPU必须先启动一个线程,启动一个进程的时候会自动创建一个线程,进程里的第一个线程就是主线程程序执行的实例有唯一的进程标识符(pid)multiprossing模块
胖大海 胖大海
1年前
linux 进程管理
1\.为什么要引入进程主要是为了提高CPU利用率,人们设计了在一台计算机实现能将多个程序同时加载、并发执行,从而引入进程的概念。每个加载到内存中的程序都称为进程,操作系统管理者多个进程并发执行。进程会认为自己独立占用CPU资源2\.进程的概念2.1进程的定义进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程进程包含了正
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
522
粉丝
8
获赞
37