🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 核心参数 1. use 2. worker_connections 3. accept_mutex 4. accept_mutex_delay 5. muti_accept ## use nginx使用何种事件驱动模型; ``` use method ``` method可选值: select ,poll ,kqueue ,epoll(最常用) ,/dev/poll ,eventport; 默认配置:无 推荐配置:不指定,让nginx自己选择; 示例: ``` use epll; ``` ## worker_connections ``` worker_connections number; ``` 默认配置: ``` worker_connections 1024; ``` 每个worker子进程能够处理的最大并发连接数; 推荐配置: ``` worker_connections 65535/work_processes | 65535 ``` ## accept_mutex 当一个新连接到达时,master进程会去询问所有的worker进程谁可以处理,这样会造成大量的资源浪费;如果打开了accept_mutex,那么多个Worker将以串行方式来处理,其中有一个Worker会被唤醒,其他的Worker继续保持休眠状态;如果没有激活accept_mutex,那么所有的Worker都会被唤醒,不过只有一个Worker能获取新连接; ![](https://img.kancloud.cn/ec/42/ec427663a2a8f14d2450cff0cbf2ae91_2494x1480.png) ``` accept_mutex on | off ``` 是否打开负载均衡互斥锁; 默认配置: ``` accept_mutex off; ``` 推荐配置: ``` accept_mutex on; ``` ## accept_mutex_delay 需要将accept_mutex设为on有意义;当打开accept_mutex后,一个新的请求进来后,master按照串行的规则将请求转发给某个worker,但是这个worker此刻正有请求未处理完.那么当时间超过accept_mutex_delay设置的值后,master会将请求转发给下一个worker子进程去处理; ``` accept_mutex_delay time ``` 新连接分配给worker子进程的超时时间; 默认配置: ``` accept_mutex_delay 500ms; ``` 推荐配置: ``` accept_mutex_delay 200ms;; ``` ## multi_accept 如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接。这个配置的影响不打,因为nginx本身就是异步IO复用的; ``` muti_accept on | off ``` worker子进程可以接收的新连接个数; 默认配置: ``` muti_accept off; ``` 推荐配置: ``` muti_accept on; ```