Nginx max client的计算方式

本文解释了Nginx作为服务器和反向代理时的最大并发连接数计算公式,并详细阐述了为何在充当反向代理时需将连接数除以4的原因。通过深入探讨浏览器与Nginx及后端服务器之间的连接机制,帮助读者更好地理解Nginx的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们主要来说明两个在网上经常说的公式:

  • max_client = worker_processes * worker_connections
  • max_client = worker_processes * worker_connections / 4

这两个公式分别说明,在Nginx充当服务器(例如nginx上面装载PHP)的时候,Nginx可同时承载的连接数量是最大工作线程 * 每个线程允许的连接数量;当Nginx充当反向代理服务的时候,其可同时承载的连接数量是最大工作线程 * 每个线程允许的连接数量 / 4。

第一个问题很好理解,关键是第二个问题:为什么会除以4。网上的帖子给出的答案是。浏览器->Nginx、Nginx->后端服务器、后端服务器->Nginx、Nginx->浏览器,所以需要除以四,我想说TCP协议是双向全双工协议,为什么需要这样建立连接呢?所以这个说法肯定是错误的。

在nginx官方文档上有这样一句话:

Since a browser opens 2 connections by default to a server and nginx uses the fds (file descriptors) from the same pool to connect to the upstream backend。

翻译成中文的描述就是,浏览器会建立两条连接到Nginx(注意两条连接都是浏览器建立的),Nginx也会建立对应的两条连接到后端服务器。这样就是四条连接了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值