Nginx配置中FastCGI的几个命令

Nginx配置一直以来都在程序员的工作中不断的使用,在这个中有很多的问题需要我们不断的学习,其中FastCGI就是有不少的问题需要我们解决,下面就是关于FastCGI在Nginx配置的几个指令:

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

这个指令为Nginx配置FastCGI缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。

fastcgi_connect_timeout 300; 

指定连接到后端FastCGI的超时时间。

fastcgi_send_timeout 300; 

向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。

fastcgi_read_timeout 300; 

接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间。

fastcgi_buffer_size 4k; 

指定读取FastCGI应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,由于页面大小为4k,所以这里设置为4k。

fastcgi_buffers 8 4k; 

指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答。

fastcgi_busy_buffers_size 8k; 

这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffers的两倍。

fastcgi_temp_file_write_size 8k; 

在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍。

fastcgi_cache TEST 

开启FastCGI缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU负载,并且防止502错误。

fastcgi_cache_valid 200 302 1h;  
fastcgi_cache_valid 301 1d; 
fastcgi_cache_valid any 1m; 

为指定的应答代码指定缓存时间,如上例中将200,302应答缓存一小时,301应答缓存1天,其他为1分钟。

fastcgi_cache_min_uses 1; 

缓存在fastcgi_cache_path指令inactive参数值时间内的最少使用次数,如上例,如果在5分钟内某文件1次也没有被使用,那么这个文件将被移除。

fastcgi_cache_use_stale error timeout invalid_
header http_500; 

不知道这个参数的作用,猜想应该是让Nginx知道哪些类型的缓存是没用的。

 

 

在nginx运维中一个超普遍的错误就是502 Bad Gateway,此错误出现的原因有很多,可参照此文:http://bbs.51osos.com/thread-3446-1-1.html。本文主要探讨FastCGI buffer的配置导致502 Bad Gateway。

Nginx 的 buffer 机制:来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端浏览器。缓冲区的大小涉及的两个参数是fastcgi_buffers 和 fastcgi_buffer_size 。

fastcgi_buffer_size指定将用多大的缓冲区来读取从FastCGI进程到来应答头。

fastcgi_buffers指定了从FastCGI进程到来的应答,本地将用多少和多大的缓冲区读取。

如:fastcgi_buffer_size 16k;
fastcgi_buffers 16 16k;

那么 fastcgi_buffer=16*16+16=272k

如果一个php脚本产生的页面大小为32k,将分2个16k去缓存页面,如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓冲区来缓存,如果大于256k,增大于256k的部分会缓存到fastcgi_temp指定的路径中,如果想关闭对所有请求道磁盘的缓冲,可以将fastcgi_max_temp_file_size 设置为0。通常这个值的设置应该选择一个你的站点中的php脚本所产生的页面大小的中间值。如果您服务器上的内存够大,可以将以上参数适当调大。当然以上参数并不是越大越好,也没多大实际意义,需要根据您的实际情况,如页面大小及服务器内存大小,如果以上参数太小的话,就会频繁的往磁盘写数据,对性能影响还是很大的,毕竟内存的速度比硬盘大的多,可以增大以上参数来增加缓冲区的大小。

fastcgi 模块配置手册

以下为配置实例:

    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;

当然本文对nginx的研究也不够深入,实为抛砖引玉,欢迎大家在评论中交流您的看法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值