如何调整Nginx keepalive_timeout?


12

我正在将nginx和php-fpm一起用于服务器繁忙的基于mysql的站点。目前,我正在使用keepalive_timeout = 5,但是对于如何最佳调整它,我尚无明确的想法。因此,感谢您的提示。

Answers:


10

您需要调整它来做什么,或者更确切地说:在设置它的方式时是否遇到任何问题?

没有一个适合所有人的好答案。如果大多数客户端浏览器都能在5秒内加载页面上的所有资源,则5秒就可以了,但这完全取决于您的应用程序的需求-例如,如果您的nginx服务器充当Exchange ActiveSync的反向代理,您可能希望将其一直拉到半个小时。


好吧,我正在尝试最大程度地减少服务器负载(在选择时间这是很高的),并且我认为优化keepalive_timeout可以部分有助于实现这一目标。除此之外,这只是健康的好奇心:)
alfish

1
当然-因此,“尽可能地降低,而大多数客户端在加载页面之前不会踢开”-因此,如果大多数客户端的页面加载时间不到一秒钟,那么1秒钟的超时就可以了。但是,除非您的超时远远超过5秒,否则不太可能是造成服务器负载的主要原因。
Shane Madden

那是棘手的问题。给定页面加载时间的差异(某些页面比其他页面重),访问者的连接速度等,我如何确定页面加载时间?
alfish

只是开个玩笑而已。一种或另一种方式几秒钟不可能在负载上产生任何实质性的差异,因此请随意估计很高-但是,再次,对于缓慢加载的客户端,它会重新构建TCP连接的新版本(即使使用SSL握手,如果适用)不会对它们的整体加载速度产生很大的影响。
Shane Madden

1
@ShaneMadden,这5秒不是连接的生命周期,而是服务器等待另一个请求的最大超时时间keepalive_requests。因此,加载整个页面所需的时间并不重要,仅对于html而言,直到浏览器开始获取图像/ css为止。连接保持打开状态的时间几乎是keepalive_timeout*keepalive_requests
Marki555 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.