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里:
03 |
#fastcgi_pass
unix:/tmp/php-cgi.sock; |
04 |
fastcgi_pass
127.0.0.1:9000; |
05 |
fastcgi_index
index.php; |
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 ; |
配置说明
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程序
主要代码如下:
02 |
$cacheFile = '/www/php_cache/' . substr ( $md5 ,
-1, 1) . '/' . substr ( $md5 ,
-3, 2) . '/' . $md5 ; |
03 |
if (! file_exists ( $cacheFile ))
{ |
06 |
if (@unlink( $cacheFile ))
{ |
|