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架构的响应速度和并发能力,降低服务器负载。