Nginx工作原理

本文分享自天翼云开发者社区《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 事件。

点赞
收藏

评论区

加载中...

相关推荐

Nginx之进程间的通信机制(共享内存、原子操作)

1\.概述Linux提供了多种进程间传递消息的方式,如共享内存、套接字、管道、消息队列、信号等,而Nginx框架使用了3种传递消息的传递方式:共享内存、套接字、信号。在进程间访问共享资源时,还需要提供一种机制使各个进程有序、安全地访问资源,避免并发访问带来的未知结果。Nginx主要使用了3种同步方式:原子操作、信号量、

Nginx 作为web server 的优化要点

常用优化要点nginx使用的是固定数量的workers,每个worker都处理进入的请求。最佳实践是每个CPU内核配置一个worker.如何知道您的系统有几个CPU?$ grep ^processor /proc/cpuinfo | wc l对于一个四核处理器,配置文件类似:\Oneworkerper

Nginx配置文件nginx.conf详解

usernginx;用户worker\_processes8;工作进程,根据硬件调整,大于等于cpu核数error\_loglogs/nginx\_error.logcrit;错误日志pidlogs/nginx.pid;pid放置的位置worker\_rlimit\_nofi

Nginx配置参数中文详细说明

Nginx配置参数中文详细说明定义Nginx运行的用户和用户组userwwwwww;nginx进程数,建议设置为等于CPU总核心数.worker_processes8;全局错误日志定义类型,debug|info|notice|

NGINX 详细配置信息

运行用户usernobody;启动进程,通常设置成和cpu的数量相等worker_processes1;全局错误日志及PID文件error_loglogs/error.log;error_loglogs/error.lognotice;err

PHP FastCGI进程管理器PHP

!(http://static.oschina.net/uploads/space/2015/0919/222219_6hEX_561214.jpg)一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefor