Nginx

为什么nginx那么优秀?
多进程充分使用多核(比如多个进程同时accept)
网络处理:异步,非阻塞,使用epoll
c语言
大量细节处的优化。

1. 多进程架构

master将充当监控进程,而由主进程fork()出来的子进程则充当工作进程。
worker进程的主要任务是完成具体的任务逻辑。其主要关注点是与客户端或后端真实服务器之间的数据可读/可写等I/O交互事件。work进程数量一般配置为cpu个数。
每个worker都有自己的epoll,epoll只添加本进程连接的IO事件。每个worker进程都会处理accept事件,某个worker accept某个连接之后,该连接的后续IO由该进程处理。

2. 惊群

Epoll之惊群

3. 连接架构

负载均衡和多进程处理连接参见:
Epoll之惊群

3. 进程锁

  1. mmap锁
  2. 文件锁

你可能感兴趣的:(Nginx)