Nginx原生不支持多线程模型,不存在“多进程与多线程混合工作模式”;其采用纯多进程+单线程事件驱动架构,worker进程内部无线程池,仅1.7.11+版本通过aio threads有限支持阻塞调用。
Nginx 源码安装时无法配置“多进程与多线程混合工作模式”——因为它原生不支持多线程模型,更不存在所谓“混合工作模式”的编译选项或运行时配置。
Nginx 采用的是纯多进程 + 事件驱动架构:
从 Nginx 1.7.11 开始,确实引入了 thread pool(线程池)机制,但它仅用于处理极少数阻塞型系统调用,例如:
aio threads 配合 directio 或普通文件读);启用方式是在 nginx.conf 的 http 或 location 块中配置:
thread_pool default threads=4 max_queue=65536;
aio threads;
即使你手动添加 --with-threads 参数(Nginx 最新并不提供该 configure 选项),也不会生成多线程版 Nginx。目前:
--with-file-aio、--with-threads 实际是为 aio threads 功能准备,不是开启 worker 线程化)。源码安装后,你仍应聚焦于标准多进程优化:
nginx.conf 全局块设置:worker_processes auto;(推荐)或显式指定数值;worker_cpu_affinity 绑定 CPU 核心;worker_connections 和系统级 nofile 限制;accept_mutex on(默认)避免惊群,或在高负载下尝试 off + epoll 多路复用优势。