在三丰云 申请了 免费主机并部署了Nginx服务器。服务响应不太理想,研究了一翻nginx相关缓存方面的原理,对Fastcgi优化配置作一记录。 Nginx的Fastcgi cache是用来缓存用户请求,当用户下次再进行同样的访问的时候直接将缓存结果返回给用户,避免了Nginx再向上游请求结果的过程,使服务性能大幅度提升,如果服务是静态可缓存的话使用这个模块能够明显缩短用户请求时间同时节省服务器资源,大大提升服务的QPS。

Fastcgi优化配置详解 就优化性能参数设置,下面会从两个模块分别说明:

1)http区域设置的缓存参数

fastcgi_temp_path path [level1 [level2 [level3]]]; fastcgi_cache_path path [levels=m:n] keys_zone=name:size [inactive=time] [max_size=size] 参数解释:

path 缓存文件存放(临时)目录 levels 缓存层次 keys_zone 缓存空间名和共享内存大小 inactive 失效时间, 1d = 1天 max_size 最大缓存空间(硬盘占用) 【推荐配置】

fastcgi_temp_path /tmp/temp fastcgi_cache_path /var/fastcgi_cache levels=1:2 keys_zone=cache_fastcgi:256m inactive=1d max_size=1g; #共享内存大小和最大缓存空间由具体应用重新评估设置 注: fastcgi_temp_path 和 fastcgi_cache_path 指定的路径必须在同一分区

2)server模块设置的缓存参数

fastcgi_connect_timeout=300; #fastcgi连接超时时间 fastcgi_send_timeout=300; #fastcgi请求超时时间 fastcgi_rend_timeout=300; #接收fastcgi应答超时时间 fastcgi_buffer_size=64k; #读取fastcgi应答需要多大缓冲区 fastcgi_buffers 4 64k; #指定本地需要多少个和多大的缓冲区来缓冲fastcgi应答请求 fastcgi_busy_buffers_size 128k; #默认值是fastcgi_buffer的2倍 fastcgi_temp_file_write_size 128k; #写入缓存文件使用多大的数据块 fastcgi_cache #表示开启FastCGI缓存并为其指定一个名称。 fastcgi_cache_valid #指定缓存状态及失效时间 fastcgi_cache_min_uses #指定缓存成为过期数据 fastcgi_cache_use_stale #定义哪些情况下用过期缓存 fastcgi_cache_key #指定缓存文件的标识,这个标识会 MD5 转码存储在缓存域的目录下 ffastcgi_cache_methods #指定缓存的请求方式 【推荐配置】

fastcgi_connect_timeout=300 fastcgi_send_timeout=300; fastcgi_rend_timeout=300; fastcgi_buffer_size=64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_cache fcgi; fastcgi_cache_valid 200 302 301 1h; fastcgi_cache_valid any 1m; fastcgi_cache_min_uses 1; fastcgi_cache_use_stale error timeout invalid_header http_500; fastcgi_cache_key "$request_method://$host$request_uri"; fastcgi_cache_methods GET HEAD;