登陆

章鱼彩票优惠-Nginx 呼应提速10倍,你需求知道的缓存功能优化——FastCGI调优

admin 2019-05-14 184人围观 ,发现0个评论

Nginx缓存优化是协助我们提高网站功能的重要操作之一,proxy_cache首要用于反向署理时,对后端内容源服务器进行缓存;fastcgi_cache首要用于对FastCGI的动态程序进行缓存。可是大多数同学存在对proxy_cache比较了解,对fastcgi_cache相对生疏的状况。但事实是Fastcgi参数的优化在很大程度上提高了整个运用体系的功章鱼彩票优惠-Nginx 呼应提速10倍,你需求知道的缓存功能优化——FastCGI调优能。今日小编协助我们打破“生疏”,一同探究Ngnix中的Fastcgi参数功能优化~

什么是Fastcgi

FastCGI,全称快速通用网关接口(FastCommonGatewayInterface),可以看作是常驻型的CGI,履行速度更快。因为服务器不能直接运转php、asp等文件,因而需求引进一个第三方程序,并和它有个约好:我把恳求参数发送给你,然后我接纳你的处理成果再给客户端,这便是CGI。

Nginx的Fastcgi cache是用来缓存用户恳求,当用户下次再进行相同的拜访的时分直接将缓存成果回来章鱼彩票优惠-Nginx 呼应提速10倍,你需求知道的缓存功能优化——FastCGI调优给用户,避免了Nginx再向上游恳求成果的进程,使服务功能大幅度提高,假如服务是静态可缓存的话运用这个模块可以显着缩短用户恳求时刻一起节约服务器资源,大大提高服务的QPS。

Fastcgi缓存的优缺陷

经过缓存php、asp生成的动态内容,来减少了nginx与php、asp的通讯次数,然后减轻php、asp和后段数据库的压力,呼应时刻由几百毫秒降低到几十毫秒。

尽管效果显著,沈阳大学可是fastcgi_cache有个丧命缺陷,在缓存失效时刻之内,即便更新了数据库信息,拜访内容也不会发生改变。

Fastcgi缓存的适用场景

  • 非即时数据查询的运用
  • 数据改变频率低
  • 轻量,非大型web站点
  • 节约资源,替代Memcached服务器

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章鱼彩票优惠-Nginx 呼应提速10倍,你需求知道的缓存功能优化——FastCGI调优_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout inva章鱼彩票优惠-Nginx 呼应提速10倍,你需求知道的缓存功能优化——FastCGI调优lid_header http_500;
fastcgi_cache_key "$request_method://$host$request_uri";
fastcgi_cache_methods GET HEAD;

其他问题

1、页面拜访空白

原因:这是因为 fastcgi_cache_key 中没有设置$request_method,将 GET 和 HEAD 的恳求存储到了同一个 key 中。

处理:装备结束后,拜访偶然呈现空白页面,清空缓存目录后,从头拜访康复。

2、页面缓存失利,一向 MISS

原因:默许状况下,恳求的 header 中包括“Expires”, “Cache-Control”, “Set-Cookie”等,页面将不会被缓存。

处理:增加参数 fastcgi_ignore_headers Cache-Control Expires SetCookie;重载nginx服务即可。

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP