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 事件。
评论