ubuntu

如何在Ubuntu上配置LNMP缓存

小樊
55
2025-09-16 13:12:34
栏目: 智能运维

在Ubuntu上配置LNMP缓存可通过Nginx代理缓存、PHP OPcache及MySQL缓冲池优化实现,步骤如下:

一、Nginx缓存配置

  1. 安装Nginx(若未安装)

    sudo apt update && sudo apt install nginx  
    
  2. 配置代理缓存
    编辑Nginx配置文件(如/etc/nginx/nginx.conf或站点配置文件):

    http {  
        proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;  
        server {  
            location / {  
                proxy_pass http://backend; # 替换为实际后端地址  
                proxy_cache my_cache;  
                proxy_cache_valid 200 302 10m; # 200/302状态码缓存10分钟  
                proxy_cache_valid 404 1m;    # 404状态码缓存1分钟  
                add_header X-Proxy-Cache $upstream_cache_status; # 查看缓存状态  
            }  
        }  
    }  
    
    • levels=1:2:缓存目录层级结构。
    • max_size=1g:缓存最大占用1GB空间。
    • inactive=60m:60分钟未访问则删除缓存。
  3. 重启Nginx

    sudo systemctl restart nginx  
    

二、PHP缓存配置(OPcache)

  1. 安装OPcache
    sudo apt install php-opcache # 适用于PHP 7.x/8.x  
    
  2. 启用并配置OPcache
    编辑PHP配置文件(如/etc/php/7.x/fpm/php.ini):
    [opcache]  
    zend_extension=opcache.so  
    opcache.enable=1  
    opcache.memory_consumption=128 # 缓存大小(MB),根据服务器内存调整  
    opcache.max_accelerated_files=4000 # 缓存文件数量  
    opcache.revalidate_freq=60 # 每60秒检查脚本更新  
    
  3. 重启PHP服务
    sudo systemctl restart php7.x-fpm  
    

三、MySQL缓存优化

  1. 配置InnoDB缓冲池
    编辑MySQL配置文件(/etc/mysql/my.cnf):

    [mysqld]  
    innodb_buffer_pool_size=1G # 建议设置为服务器内存的50%-70%  
    
  2. 启用查询缓存(仅适用于MySQL 5.7及以下版本)

    [mysqld]  
    query_cache_type=1  
    query_cache_size=64M  
    

    注意:MySQL 8.0已移除查询缓存,建议使用Redis替代。

  3. 重启MySQL

    sudo systemctl restart mysql  
    

四、验证缓存效果

可选扩展:Redis缓存

若需更强大的缓存(如会话存储、分布式缓存),可安装Redis:

  1. 安装Redis
    sudo apt install redis-server php-redis  
    
  2. 配置PHP使用Redis
    编辑PHP配置文件,添加:
    [redis]  
    extension=redis.so  
    redis.host=localhost  
    
  3. 重启服务
    sudo systemctl restart redis-server php7.x-fpm  
    

通过以上配置,可显著提升LNMP架构的性能,减少服务器负载。根据实际需求调整缓存参数(如缓存大小、有效期),并定期监控缓存命中率[1,3,4,5,6,7,8,12,13,14]。

0
看了该问题的人还看了