个人学习笔记,谢绝转载!!!
原文:https://www.cnblogs.com/wshenjin/p/15724987.html
upstream phpfpm { server 127.0.0.1:9001; keepalive 10; } server{ keepalive_requests 4096; location ~ .*\.php$ { include fcgi.conf; fastcgi_pass phpfpm; fastcgi_index index.php; expires off; fastcgi_keep_conn on; } }
1、upstream中的keepalive设置:
此处keepalive的含义不是开启、关闭长连接的开关;也不是用来设置超时的timeout;更不是设置长连接池最大连接数。官方解释:
The connections parameter sets the maximum number of idle keepalive connections to upstream servers connections(设置到upstream服务器的空闲keepalive连接的最大数量)
When this number is exceeded, the least recently used connections are closed. (当这个数量被突破时,最近使用最少的连接将被关闭)
It should be particularly noted that the keepalive directive does not limit the total number of connections to upstream servers that an nginx worker process can open.(特别提醒:keepalive指令不会限制一个nginx worker进程到upstream服务器连接的总数量)
2、keepalive_requests 指令用于设置一个keep-alive连接上可以服务的请求的最大数量。当最大请求数量达到时,连接被关闭。默认是100。
这个参数的真实含义,是指一个keep alive建立之后,nginx就会为这个连接设置一个计数器,记录这个keepalive的长连接上已经接收并处理的客户端请求的数量。如果达到这个参数设置的最大值时,则nginx会强行关闭这个长连接,逼迫客户端不得不重新建立新的长连接。
这里设置和php-fpm的pm.max_request一样