- 积分
- 62
- 威望
-
- 金钱
-
- 注册时间
- 2011-6-8
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
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 编辑 ] |
|