VPS侦探论坛

 找回密码
 注册
查看: 8029|回复: 3

给使用LNMP的服务器使用的FASTCGI_CACHE配置(可以大大提高并发量)

[复制链接]
发表于 2011-10-8 12:04:59 | 显示全部楼层 |阅读模式

Nginx+PHP是高效、高速、高性能的完美组合,但是要发挥其性能极致还是需要一些手段进行优化,使得这个组合结合更加紧密。在Nginx中启用fastcgi cache就可以有效提高PHP网站的访问速度。

NGINX开启了它的静态化的功能,把一些文件都用HASH值的形式保存在缓存中,当有需要的时候直接去读缓存中的文件(类似于静态化),



注:若你不想一些PHP文件给静态化,可以给你HEADER头里面指定
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');  




当然,若是你的服务器类似于DEDECMS一样.自身带有静态化的,可以选择配置.







    配置参数:

    http里:

       1. fastcgi_cache_path /www/php_cache levels=1:2 keys_zone=cache_php:30m inactive=1d max_size=10g; //这一条非常的重要,里面的/www/php_cache是你FASTCGI_CACHE的缓存的目录,

    server里:

       1. location ~ .*\.php?$
       2. {
       3.       #fastcgi_pass  unix:/tmp/php-cgi.sock;
       4.       fastcgi_pass  127.0.0.1:9000;
       5.       fastcgi_index index.php;
       6.       include fcgi.conf;
       7.       #以下是fastcgi_cache的配置
       8.       fastcgi_cache   cache_php;
       9.       fastcgi_cache_valid   200 302  1h;
      10.       fastcgi_cache_min_uses  1;
      11.       fastcgi_cache_use_stale error  timeout invalid_header http_500;
      12.       fastcgi_cache_key $host$request_uri;
      13. }

    配置说明

    fastcgi_cache_path:fastcgi_cache缓存目录,可以设置目录层级,比如1:2会生成16*256个字目录,cache_php是这个缓存空间的名字,cache是用多少内存(nginx直接放内存,提高访问速度),inactive表示默认失效时间,max_size表示最多用多少硬盘空间。

    fastcgi_cache_valid:定义哪些http头要缓存

    fastcgi_cache_min_uses:URL经过多少次请求将被缓存

    fastcgi_cache_use_stale:定义哪些情况下用过期缓存

    fastcgi_cache_key:定义fastcgi_cache的key,示例中就以请求的URI作为缓存的key,Nginx会取这个 key的md5作为缓存文件,如果设置了缓存哈希目录,Nginx会从后往前取相应的位数做为目录fastcgi_cache:用哪个缓存空间
    清除缓存

    指定删除某一URL的php文件的缓存的PHP程序

    主要代码如下:

       1. $md5md5 = md5($url);
       2.     $cacheFile = '/www/php_cache/' . substr($md5, -1, 1) . '/' . substr($md5, -3, 2) . '/' . $md5;
       3.     if (!file_exists($cacheFile)) {
       4.         exit('缓存不存在。');
       5.     }
       6.     if (@unlink($cacheFile)) {
       7.         echo '清除缓存成功。';
       8.     } else {
       9.         echo '清除缓存失败。';
      10.     }

[ 本帖最后由 yuweitaocn 于 2011-10-8 12:13 编辑 ]
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2011-10-8 12:14:35 | 显示全部楼层


还有一种就是LNMPA的缓存设置.已经在原先的贴子中有讨论过,就不再发贴了.

确实这样做可以提高相当多的并发.
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2011-10-8 14:35:00 | 显示全部楼层

感谢楼主的 分享~~

学习中
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2011-10-8 17:44:38 | 显示全部楼层

回复 3# 的帖子




这个问题在于清除缓存的问题,若是后台应用程序的话,,不建议这么用喔..
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-11-15 21:05 , Processed in 0.026297 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表