温馨提示×

centos lnmp缓存策略优化

小樊
55
2025-08-26 23:33:13
栏目: 智能运维

以下是CentOS LNMP环境下缓存策略的优化方向及具体措施:

一、Nginx缓存优化

  • 启用静态资源缓存
    对CSS、JS、图片等静态资源设置过期时间,利用浏览器缓存减少重复请求:
    location ~* \.(jpg|jpeg|png|gif|css|js)$ {
        expires 30d;
        add_header Cache-Control "public";
    }
    
  • 配置代理缓存
    缓存后端PHP或API响应,减少动态请求压力:
    proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
    location / {
        proxy_cache my_cache;
        proxy_cache_valid 200 30m;
    }
    
  • 启用Gzip压缩
    压缩文本类响应数据,降低传输体积:
    gzip on;
    gzip_types text/css application/javascript text/xml;
    gzip_comp_level 6;
    

二、PHP缓存优化

  • 启用OPcache
    缓存PHP脚本编译后的字节码,避免重复解析:
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.max_accelerated_files=10000
    
  • 调整PHP-FPM进程管理
    根据服务器资源动态调整进程数,避免资源浪费:
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 10
    pm.min_spare_servers = 5
    pm.max_spare_servers = 20
    

三、MySQL缓存优化

  • 优化InnoDB缓冲池
    缓存数据和索引,设置为系统内存的50%-80%:
    innodb_buffer_pool_size = 4G  # 假设服务器内存为8G
    innodb_buffer_pool_instances = 4  # 多实例减少锁竞争
    
  • 合理配置查询缓存(仅限MySQL 5.7及以下)
    若使用低版本MySQL,可启用查询缓存(MySQL 8.0已移除):
    query_cache_type = 1
    query_cache_size = 64M
    

四、系统级优化

  • 使用SSD存储
    提升磁盘I/O性能,尤其适合高并发场景。
  • 调整内核参数
    优化TCP连接和内存管理,例如:
    echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
    echo "vm.swappiness = 10" >> /etc/sysctl.conf
    sysctl -p
    

五、监控与调优

  • 工具监控
    使用tophtop监控CPU和内存,iostat监控磁盘I/O,nginx -T查看缓存命中率。
  • 定期清理缓存
    对Nginx缓存目录设置定时任务,避免缓存文件过多占用空间:
    crontab -e
    0 3 * * * rm -rf /tmp/nginx_cache/*
    

0