这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。
指定连接到后端FastCGI 的超时时间。
向FastCGI 传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI 传送请求的超时时间。
接收FastCGI 应答的超时时间,这个值是指已经完成两次握手后接收FastCGI 应答的超时时间。
指定读取FastCGI 应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,由于页面大小为4k,所以这里设置为4k。
指定本地需要用多少和多大的缓冲区来缓冲FastCGI 的应答。
这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffers 的两倍。
在写入fastcgi_temp_path 时将用多大的数据块,默认值是fastcgi_buffers 的两倍。
开启FastCGI 缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。
为指定的应答代码指定缓存时间,如上例中将200,302 应答缓存一小时,301 应答缓存1 天,其他为1 分钟。
缓存在fastcgi_cache_path 指令inactive 参数值时间内的最少使用次数,如上例,如果在5 分钟内某文件1 次也没有被使用,那么这个文件将被移除。
fastcgi_cache_use_stale error timeout invalid_header http_500;
不知道这个参数的作用,猜想应该是让nginx 知道哪些类型的缓存是没用的。
再来优化PHP-FPM,打开/usr/local/php/etc/php-fpm.conf
[global]
pid = run/php-fpm.pid
process_control_timeout=5
[www]
listen.allowed_clients = 127.0.0.1
user=www-data
group=www-data
pm=dynamic
pm.max_children=20(这个配置决定了php-fpm的总进程数,内存小的少设点)
pm.max_requests=10000(并发数越大,此请求数应越大)
pm.start_servers =10(初始php-fpm进程数)
emergency_restart_threshold = 60
emergency_restart_interval = 60s
上边这两个,表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值