2011-07-13, 10:01 PM | #1 | |
注册日期: 2003-10-22
帖子: 11,053
积分:6
精华:24
现金:14348金币
资产:29325305金币
|
Nginx+PHP优化提速
Nginx+PHP是高效、高速、高性能的完美组合,但是要发挥其性能极致还是需要一些手段进行优化,使得这个组合结合更加紧密。在Nginx中启用fastcgi cache就可以有效提高PHP网站的访问速度。 配置参数: http里: 1fastcgi_cache_path /www/php_cache levels=1:2 keys_zone=cache_php:30m inactive=1d max_size=10g; server里: 01location ~ .*\.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表示最多用多少硬盘空间。 1fastcgi_cache_valid:定义哪些http头要缓存 2fastcgi_cache_min_uses:URL经过多少次请求将被缓存 3fastcgi_cache_use_stale:定义哪些情况下用过期缓存 4fastcgi_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 } |
|
|
||
|