Nginx+PHP 优化配置 发挥性能极致

post by rocdk890 / 2012-1-26 12:40 Thursday linux技术
Nginx+PHP是高效、高速、高性能的完美组合,但是要发挥其性能极致还是需要一些手段进行优化,使得这个组合结合更加紧密。在Nginx中启用fastcgi cache就可以有效提高PHP网站的访问速度。

配置参数:

http里:

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

server里:

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

配置说明

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会从后往前取相应的位数做为目录<br>fastcgi_cache:用哪个缓存空间

清除缓存

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

主要代码如下:

$md5 = md5($url);     $cacheFile = '/www/php_cache/' . substr($md5, -1, 1) . '/' .substr($md5, -3, 2) . '/' . $md5;     if (!file_exists($cacheFile)) {         exit('缓存不存在。');     }     if (@unlink($cacheFile)) {         echo '清除缓存成功。';     } else {         echo '清除缓存失败。';     }
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-106.html

标签: nginx 配置 cache php-fpm 缓存 php 优化

  1. 2012-08-20 10:55
    @毛线:我在下面写有说明的啊
  1. gravatar 毛线
    2012-08-19 19:37
    http里:

    server里这个不太明白,求指点

评论: