您的位置:首页 > 理论基础 > 计算机网络

nginx中http的fastcgi模块的配置指令1

2015-09-10 22:39 1391 查看

HTTP fastcgi模块

fastcgi模块主要是将HTTP请求传递到fastcgi服务器

配置文件示例:

location / {
fastcgi_pass  localhost:9000;
fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING    $query_string;
fastcgi_param REQUEST_METHOD  $request_method;
fastcgi_param CONTENT_TYPE    $content_type;
fastcgi_param CONTENT_LENGTH  $content_length;
}

配置指令

fastcgi_bind address | off:配置发到fastcgi服务器的请求的源地址,该参数配置可以使用变量,若设置为off则表示自动分配本地的地址

fastcgi_buffer_size size:配置读取fastcgi服务区返回的消息头和消息体的第一部分的缓冲区的大小,默认情况下一般为一个内存页的大小(4K|8K),也可以设置的更小

fastcgi_buffering on | off:配置是否启用读取fastcgi服务器消息的缓冲功能。 如果配置为on,nginx在接收到fastcgi服务器的响应结果时尽快将响应写到缓冲区(由fastcgi_buffer_size和fastcgi_buffering指令控制)中,如果响应结果超过了缓冲区的大小,nginx会将超出部分写到临时文件(由fastcgi_max_temp_file_size和fastcgi_temp_file_write_size指令控制)中。 如果配置为off,nginx在接收到fastcgi服务器的响应结果时,会将结果同步发送给客户端,不等到所有的响应结果接收完成时,一次性读取响应结果的最大值为fastcgi_buffer_size配置的大小

fastcgi_buffers number size:配置一个连接从fastcgi服务器读取响应结果时的缓冲区的个数和大小,大小一般为一个内存页的大小(4K|8K) fastcgi的总的缓冲区大小为fastcgi_buffer_size+number*size,例如fastcgi_buffer_size=4k,number=20,size=4k,则总的缓冲区大小为4+20*4=84k,如果响应结果的大小超过了84k,则超出的部分将被写到磁盘上的临时文件中

fastcgi_busy_buffers_size size:当开启响应结果的缓冲功能时,配置缓冲区需要急忙发送到客户端的最大值,同时其它的缓冲区用于读取剩余的响应结果,如果有需要,可以将响应结果写到磁盘上的临时文件中,默认的,该值由fastcgi_buffer_size和fastcgi_buffers两个指令来限制

fastcgi_cache zone | off:配置缓存实际使用的共享内存指定一个区域,相同的区域可以用在不同的地方,默认值为off

fastgi_cache_bypass string ...:配置不从缓存中读取响应结果的条件,如果条件中至少有一个值为非空或不等于0,即满足条件

fastcgi_cache_key string:配置缓存的键,可以使用变量来设置

fastcgi_\cache_lock on | off:当设置为on时,则每次只允许一个发起到fastcgi服务器的请求来填充指定“fastcgi_cache_key”的缓存,其他请求只能等待响应结果在缓存中存在或者缓存的锁被释放(超时时间由fastcgi_cache_lock_timeout指定),当设置为off时,则不启用缓存的锁

fastcgi_cache_lock_age time:如果最近一个发起到fastcgi服务器的请求未能在指定的时间内填充完缓存,则会发起一个额外的请求到fastcgi服务器,默认的time为5秒

fastcgi_cache_lock_timeout time:配置fastcgi_cache_lock的超时时间,如果超过了该时间,则请求会指向fastcgi服务器,而且响应结果不会被缓存

fastcgi_cache_methods GET | HEAD | POST ...:如果客户端请求的方法在该配置中指定,则响应结果会被缓存,GET和HEAD方法总是被指定

fastcgi_cache_min_uses number:配置请求最少访问的次数后响应结果将被缓存,默认值为1,表示访问1次后响应结果就被缓存

fastcgi_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time]:配置fastcgi缓存的目录以及其他的参数,缓存的数据保存在文件中,不管是缓存的键名还是文件名都是MD5进行hash计算后的结果

levels:配置目录的层级,一个响应结果的缓存是被写到临时文件中,然后进行重命名

use_temp_path:配置是否使用fastcgi_temp_path配置的临时目录来保存fastcgi的缓存,如果配置为off,则临时文件直接写到该缓存目录下

keys_zone:另外,所有的活跃的缓存的键和数据的信息都是保存在一个共享的内存区域,name和size就是用来配置区域的名称和大小的,1M的内存可以保存8000个key

inactive:用来配置缓存在多长时间内未被访问则将从缓存中删除,默认值为10分钟

max_size:一个特殊的“cache manager”进程专门用来监控缓存的最大值,该值由max_size指令来配置,如果超过该值设置的大小,则将移除最少使用的数据

loader_*:一个特殊的“cache loader”进程专门用于处理缓存的文件,在该进程启动1分钟后,它将之前缓存在磁盘文件中的数据加载到内存中的缓存区域,使用迭代的方式来完成这个加载过程,在一个迭代周期中他最多处理“loader_files”项(默认为100),另外一个迭代周期的时间由“loader_threshold”来指定(默认为200毫秒),在两个迭代周期之间的暂停时间将由“loader_sleep”来指定(默认为50毫秒)

未完待续。。。

(adsbygoogle = window.adsbygoogle || []).push({});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx http fastcgi
相关文章推荐