• 网站新版上线,欢迎吐槽

网站优化:使用fastcgi_cache加速你的Nginx网站

网站技术 admin 723次浏览 0个评论 扫描二维码

项目简介   

  • 应用场景:某电商频道大促,预计PV100万,前台服务器:4台,促销第一天晚21:00,监控发现cpu达到90%左右,负载达到160左右,所以实行紧急方案,与其他域公用,增加了几台服务器,以此支撑大的访问量。但是第二天监控发现cpu还是维持在30%左右,但是此域的促销页几乎就是个纯静态,整个页面请求时间才10ms,故从程序的角度优化的空间不大。那么如何降低cpu和负载呢?经过开会紧急讨论,决定采用ngnix的缓存机制。

nginx缓存机制

  • nginx有两种缓存机制:fastcgi_cacheproxy_cache
    • proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的
    • fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容
    • proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽
    • fastcgi_cache缓存减少了nginxphp的通信次数,更减轻了php和数据库的压力。
  • 在功能上,Nginx已经具备Squid所拥有的Web缓存加速功能、清除指定URL缓存的功能。而在性能上,Nginx对多核CPU的利用,胜过Squid不少。这使得一台Nginx可以同时作为负载均衡服务器“Web缓存服务器来使用。
  • 所以可以根据实际情况结合使用proxy_cachefastcgi_cache来架构Nginx的负载均衡系统。
  • 针对本次大促,采用f5做负载均衡,前台服务器使用fastcgi缓存,效果非常好。
  • 优化前后cpu和负载对比图
  • 如下图所示,图1911号晚,增加服务器后的cpu使用和负载情况。由图上可以清晰的看见,21:00,数据达到峰值,最高cpu95%左右,最大负载160,增加完服务器以后,cpu维持在30%左右,负载为3.0
    2912日晚19:30,使用了fastcgi_cachecpu急速降为5%以下,而负载低于0.3,效果非常明显。
  • 网站优化:使用fastcgi_cache加速你的Nginx网站
  • 网站优化:使用fastcgi_cache加速你的Nginx网站
  • 下面重点说明一下fastcgi_cache的配置信息
    • http配置区(修改nginx.conf文件)
       fastcgi_temp_path /data/fastcgi/tmp;
       fastcgi_cache_path /data/fastcgi/cache levels=1:2 keys_zone=one:100m inactive=3m max_size=1g;
    • server配置区(修改站点文件 /usr/local/nginx/conf/sites-enabled)
      fastcgi_cache one;
       fastcgi_cache_valid 200 302 3m;
       fastcgi_cache_key $request_method$request_uri;

     

    • 各个参数的含义:
      • fastcgi_temp_path:生成fastcgi_cache临时文件目录
      • fastcgi_cache_pathfastcgi_cache缓存目录,可以设置目录哈希层级
      • keys_zone是这个缓存空间的名字,内存缓存空间大小为100MB
      • inactive:表示默认失效时间
      • max_size:表示最多用多少硬盘空间
      • 需要注意的是fastcgi_cache缓存是先写在fastcgi_temp_path再移到fastcgi_cache_path,所以这两个目录最好在同一个分区
      • fastcgi_cache_valid:定义哪些http头要缓存
      • fastcgi_cache_key:定义fastcgi_cachekey,Nginx会取这个keymd5作为缓存文件
      • fastcgi_cache:使用哪个缓存空间

    如何手动清除缓存

网站优化:使用fastcgi_cache加速你的Nginx网站


营销课堂 , 版权所有丨本网站采用BY-NC-SA协议进行授权 , 转载请注明网站优化:使用fastcgi_cache加速你的Nginx网站
喜欢 (0)or分享 (0)
admin
关于作者:
营销课堂,让营销更简单!

您必须 登录 才能发表评论!