分享

Nginx+PHP FastCgi大幅度优化提速

 大芬油画 2015-08-13

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

配置参数:

http里:

1 fastcgi_cache_path /www/php_cache levels=1:2 keys_zone=cache_php:30m inactive=1d max_size=10g;

server里:

01 location ~ .*\.php?$
02 {
03       #fastcgi_pass  unix:/tmp/php-cgi.sock;
04       fastcgi_pass  127.0.0.1:9000;
05       fastcgi_index index.php;
06       include fcgi.conf;
07       #以下是fastcgi_cache的配置
08       fastcgi_cache   cache_php;
09       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表示最多用多少硬盘空间。

1 fastcgi_cache_valid:定义哪些http头要缓存
2 fastcgi_cache_min_uses:URL经过多少次请求将被缓存
3 fastcgi_cache_use_stale:定义哪些情况下用过期缓存
4 fastcgi_cache_key:定义fastcgi_cache的key,示例中就以请求的URI作为缓存的key,Nginx会取这个key的md5作为缓存文件,如果设置了缓存哈希目录,Nginx会从后往前取相应的位数做为目录<br>fastcgi_cache:用哪个缓存空间

清除缓存

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

主要代码如下:

01 $md5 = md5($url);
02     $cacheFile '/www/php_cache/' substr($md5, -1, 1) . '/' substr($md5, -3, 2) . '/' $md5;
03     if (!file_exists($cacheFile)) {
04         exit('缓存不存在。');
05     }
06     if (@unlink($cacheFile)) {
07         echo '清除缓存成功。';
08     else {
09         echo '清除缓存失败。';
10     }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多