Nginx+PHP是高效、高速、高性能的完美組合,但是要發(fā)揮其性能極致還是需要一些手段進(jìn)行優(yōu)化,使得這個(gè)組合結合更加緊密。在Nginx中啟用fastcgi cache就可以有效提高PHP網(wǎng)站的訪(fǎng)問(wèn)速度。
配置參數:
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; |
配置說(shuō)明
fastcgi_cache_path:fastcgi_cache緩存目錄,可以設置目錄層級,比如1:2會(huì )生成16*256個(gè)字目錄,cache_php是這個(gè)緩存空間的名字,cache是用多少內存(nginx直接放內存,提高訪(fǎng)問(wèn)速度),inactive表示默認失效時(shí)間,max_size表示最多用多少硬盤(pán)空間。
1 | fastcgi_cache_valid:定義哪些http頭要緩存 |
2 | fastcgi_cache_min_uses:URL經(jīng)過(guò)多少次請求將被緩存 |
3 | fastcgi_cache_use_stale:定義哪些情況下用過(guò)期緩存 |
4 | fastcgi_cache_key:定義fastcgi_cache的key,示例中就以請求的URI作為緩存的key,Nginx會(huì )取這個(gè)key的md5作為緩存文件,如果設置了緩存哈希目錄,Nginx會(huì )從后往前取相應的位數做為目錄<br>fastcgi_cache:用哪個(gè)緩存空間 |
清除緩存
指定刪除某一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)) { |
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。