PHP-FPM的几个冷门配置
backlog参数
http://blog.csdn.net/huang_xw/article/details/7338487 这个较简单的理解就是FIFO队列,单纯的说是受理中的请求队列数,处于满载状态服务就会拒绝连接
http://bbs.chinaunix.net/thread-2318039-1-1.html,这个复杂了,还包括了一些内核参数配置
http://blog.csdn.net/ordeder/article/details/21551567
这个最全,受理中和已经受理完成可能还没被释放的加起来不能超过backlog值。
这参数简而言之就是最多能够一起处理多个请求,受限于内核/proc/sys/net/core/somaxconn的值。
因为这个系统级别的参数,所以跟多少线程应该没有关系?无论开多少条线程处理,都不能超过这个数值?按照第二条链接的说法10000并发,300条线程独自accept,很快处理完,所以应该可能是线程级的限制参数。
fpm的监控参数,可以通过url打开监控页面
参考文章https://easyengine.io/tutorials/php/fpm-status-page/
pm.status_path=/status
ping.path=/ping
ping.response=pong
http://domain/status 返回fpm的实时监控信息
http://domain/ping 看看fpm是否还活着,返回ping.response设置的值,如果活着会返回200,text/plain,pong
下面的代码是安全考虑,只设置白名单访问
location ~ ^/(status|ping)$ {
access_log off;
allow 127.0.0.1;
allow 1.2.3.4#your-ip;
deny all;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}
}