良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

优化Nginx配置中FastCGI参数提升性能

为保证Nginx下PHP环境的高速稳定运行,需要添加一些FastCGI优化指令。下面给出一个优化实例,将代码添加到Nginx主配置文件中的HTTP层级

 

1

2

3

4

5

6

7

8

9

10

11

12

fastcfi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;

fastcgi_connect_timeout  300;

fastcgi_send_timeout   300;

fastcgi_read_timeout   300;

fastcgi_buffer_size   64k;

fastcgi_buffers   4   64k;

fastcgi_busy_buffers_size   128k;

fastcgi_temp_file_write_size   128k;

fastcgi_cache   TEST;

fastcgi_cache_valid   200   302   1h;

fastcgi_cache_valid   301   1d;

fastcgi_cache_valid    any   1m;

代码的含义介绍:

1. fastcfi_cache_path:为FastCGI缓存指定一个文件路径、目录结构等级、关键字区域存储时间和非活动删除时间

2. fastcgi_connect_timeout:指定连接后端FastCGI的超时时间

3. fastcgi_send_timeout:指定想FastCGI传送请求的超时时间,这个值是已经完成两次握手后向FastCGI传送请求的超时时间

4. fastcgi_read_timeout:指定接收FastCGI应答的超时时间,这个值是已经完成两次我守候接收FastCGI应答的超时时间

5. fastcgi_buffer_size:用于指定读取FastCGI应答第一部分需要多大的缓存区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers选项指定的缓冲区大小

6. fastcgi_buffers:指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本锁产生的页面大小的中间值,如果站点大部分脚本锁产生的页面大小为256KB,那么可以把这个值设置为“16  16K”、“4  64K”等。

7. fastcgi_busy_buffers_size:是默认值是fastcgi_buffers的两倍

8. fastcgi_tmp_file_write_size:表示在写入缓存文件是使用多大的数据块,默认值是fastcgi_buffers

9. fastcgi_cache:表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502错误发生。但是开启缓存也会引起很多问题,要视具体情况而定。

10. fastcgi_cache_valid:用来指定应答代码的缓存时间。实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分钟。


留言列表
发表评论
来宾的头像