Nginx配置中FastCGI的几个命令
2013-05-22 13:52
260 查看
Nginx配置一直以来都在程序员的工作中不断的使用,在这个中有很多的问题需要我们不断的学习,其中FastCGI就是有不少的问题需要我们解决,下面就是关于FastCGI在Nginx配置的几个指令:
指定连接到后端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次也没有被使用,那么这个文件将被移除。
不知道这个参数的作用,猜想应该是让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 模块配置手册
以下为配置实例:
当然本文对nginx的研究也不够深入,实为抛砖引玉,欢迎大家在评论中交流您的看法。
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 模块配置手册
以下为配置实例:
当然本文对nginx的研究也不够深入,实为抛砖引玉,欢迎大家在评论中交流您的看法。
相关文章推荐
- Nginx配置中FastCGI的几个命令
- Nginx配置中FastCGI的几个命令
- nginx学习4——nginx的几个配置文件学习nginx.conf、fastcgi.conf
- 分享:PHP+FastCGI+Nginx配置PHP运行环境
- PHP-5.3.27源码安装及nginx-fastcgi配置
- web developer tips (71): 关于FastCGI 1.5beta几个新配置设置
- CentOS配置Nginx+Fastcgi+PHP,多网站配置
- Windows下配置nginx+FastCgi + Spawn-fcgi
- CentOS 6.3 页游环境配置 Nginx 1.2.6+PHP5.2.17(FastCGI)+MySql 5.5.29+Java1.0.7_11
- Nginx+FastCGI配置
- nginx 配置PHP fastcgi无法解析问题
- 关于FastCGI的几个命令说明
- nginx 配置 http proxy 和fastcgi
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
- 实战Nginx与PHP(FastCGI)的安装、配置与优化
- nginx 安装、操作命令、基本配置与参数说明
- Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化
- 在Ubuntu 8.04 LTS(hardy)下安装配置nginx和fastcgi方式的php
- 高性能Web服务器Nginx的配置与部署研究(4)Nginx常用命令
- nginx 反向代理 ,配置 含自定义header 和php fastcgi