LNMP架構下的緩存策略可從Nginx、PHP、MySQL及輔助組件多維度優化,以下是核心方案及配置要點:
expires
指令設置圖片、CSS、JS等靜態文件的緩存時間,減少磁盤I/O。location ~* \.(jpg|css|js)$ {
expires 7d;
add_header Cache-Control "public, no-transform";
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
location / {
proxy_cache my_cache;
proxy_pass http://php_backend;
proxy_cache_valid 200 10m;
}
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_fcgi_cache:10m;
location ~ \.php$ {
fastcgi_cache my_fcgi_cache;
fastcgi_cache_valid 200 10m;
}
php.ini
中啟用。zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
extension=apcu.so
apcu.shm_size=64M
innodb_buffer_pool_size=1G
php-memcached
或php-redis
擴展,通過代碼實現緩存邏輯。// Redis示例
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('key', 'value', 3600); // 緩存1小時
expires
和Cache-Control
。proxy_cache_valid
),避免緩存數據過期導致請求穿透。通過組合上述緩存策略,可有效提升LNMP架構的響應速度和并發能力,降低服務器負載。