一般情况下并发机制分为三种:多进程、多线程和异步机制,nginx对于并发的处理同时采用了这三种机制,当然异步机制是采用的异步非阻塞。
nginx多进程表现在,master进程和worker进程,一个master进程可以生成多个worker进程,所以说是多进程的。
nginx多线程表现在,一个worker进程可以同时处理多个请求,每个请求是由一个线程处理的,所以表现为多线程。
nginx异步非阻塞表现为,worker进程采用的epoll多路复用来对后端服务进行处理,当后端服务返回结果后,后端服务器会回调epoll多路复用器,由多路复用器对响应的worker进程进行通知,此时worker进程会挂起正在进行中的事务,拿IO响应结果去响应客户端请求,响应完毕之后,继续执行挂起的事务。这个过程就是异步非阻塞的。