論壇頭像是動態的,例如:http://xxx.xxx.xxx/avatar.php?uid=xxx&size=big php
每一個用戶的頭像文件都有big、middle、small三個,而且在不一樣場景分別調用不一樣尺寸的頭像圖片,好比帖子、我的設置、頭像編輯、登錄等等場景,無形中增長了nginx與php之間的工做壓力,若是可以把這個解析結果緩存起來,那麼就會減小nginx與php的通訊壓力,會下降系統cpu使用率。nginx
測試nginx緩存功能,配置以下:緩存
http域添加ide
fastcgi_cache_path /xxxcache levels=1:2 keys_zone=cgicache:30m inactive=1d max_size=10g;測試
server域添加ui
location ~* ^/avatar.php?.*$ {
add_header X-Cache-CFC "$upstream_cache_status - $upstream_response_time";
fastcgi_temp_path /xxxtemp;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_cache cgicache;
fastcgi_cache_valid 301 302 1h;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_key $host$request_uri;
}server
經過驗證,緩存文件生成成功,http請求換成miss、hit等狀態正確。圖片
其它動態程序也能夠使用此方法緩存。
ip