nginx连接配置数的设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx连接配置数的设置相关的知识,希望对你有一定的参考价值。
参考技术A 表示开启nginx的worker进程的个数,nginx启动会开两种进程,master进程用来管理调度,workwr进程用来处理请求;方法一:worker_processes auto;
表示设置服务器cpu核数匹配开启nginx开启的worker进程数。
方法二:nginx设置cpu亲和力
00000001表示启用第一个cpu内核,00000010表示启用第二个cpu内核,以此类推
这种设置方法更高效,因将每个cpu核提供给固定的worker进程服务,减少cpu上下文切换代理的资源浪费。
比如:2核cpu,开启2个进程,设置如下:
比如:4核cpu,开启4个进程,设置如下:
1个worker进程能够最大打开的文件数(进程数)=65535(参考 worker_rlimit_nofile ----> linux ulimit - n)
最大的客户端连接数: max_clients = (多少个工作进程数) worker_processes * (1个工作线程的处理线程数) worker_connections 8 * 65535
请求模型 client<------> nginx
请求模型 client<-----> nginx <----> web server
该公式基于http 1.1协议,一次请求大多数浏览器发送两次连接,并不是request和response响应占用两个线程,实际情况,请求时双向的,连接是没有方向的。
因nginx作为反向代理,客户端和nginx建立连接,nginx和后端服务器也要建立连接。
Nginx限制并发连接数
参考技术A 对于一些服务器流量异常、负载过大,甚至是大流量的恶意攻击访问等,进行并发数的限制(共享内存和并发限制需结合系统定制)
limit_conn_zone 设置共享内存区域参数
limit_conn 设置共享内存区域和给定键值的最大允许连接数
limit_conn_log_level 日志可以调整级别,默认 error
limit_conn_status 返回状态码响应拒绝请求,默认 503
示例
限制来自单个IP地址的请求处理频率,每秒固定处理请求数,推迟过多请求。以此来防止应用层的 DDOS 攻击(共享内存和请求频率需结合系统定制)
limit_req_zone 设置共享内存区域参数
limit_req 设置共享内存区域、突发大小、延时
limit_req_log_level 日志可以调整级别,默认 error
limit_req_status 返回状态码响应拒绝请求,默认 503
示例
以上是关于nginx连接配置数的设置的主要内容,如果未能解决你的问题,请参考以下文章
nginx最大并发连接数的思考:worker_processesworker_connectionsworker_rlimit_nofile