首页主机资讯ubuntu缓存如何提高网站访问速度

ubuntu缓存如何提高网站访问速度

时间2025-12-22 13:54:04发布访客分类主机资讯浏览658
导读:Ubuntu缓存优化提升网站访问速度 一 浏览器与CDN缓存 设置强浏览器缓存:对图片、CSS、JS、字体等静态资源返回Cache-Control: public, max-age=31536000, immutable,可显著减少重复下...

Ubuntu缓存优化提升网站访问速度

一 浏览器与CDN缓存

  • 设置强浏览器缓存:对图片、CSS、JS、字体等静态资源返回Cache-Control: public, max-age=31536000, immutable,可显著减少重复下载。Nginx示例:
    location ~* \.(js|css|png|webp|svg|woff2)$ {
        
        expires 365d;
        
        add_header Cache-Control "public, immutable";
        
        access_log off;
    
    }
        
    
  • 启用内容分发网络(CDN):将静态资源分发到全球边缘节点,缩短用户与服务器的物理距离;优先选择支持Brotli压缩的CDN,较Gzip压缩率可再提升约20%

二 反向代理与应用层缓存

  • Nginx代理缓存:缓存后端动态接口,降低数据库与后端压力。
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=dynamic_cache:100m max_size=10g inactive=24h use_temp_path=off;
    
    server {
    
        location /api/ {
        
            proxy_cache dynamic_cache;
        
            proxy_pass http://backend;
        
            proxy_cache_valid 200 302 10m;
        
            proxy_cache_lock on;
        
            proxy_cache_use_stale error timeout updating;
    
        }
    
    }
        
    
  • 静态文件句柄缓存:加速磁盘文件元数据与内容访问。
    open_file_cache max=10000 inactive=30s;
        
    open_file_cache_valid 60s;
        
    open_file_cache_min_uses 2;
        
    
  • 应用层对象缓存:使用RedisMemcached缓存热点数据(如查询结果、会话、配置)。Ubuntu安装示例:
    sudo apt-get install redis-server
    sudo apt-get install memcached
    
    在应用(如PHP、Python、Node.js)中配置连接与TTL策略,动态内容(如价格、库存)设置较短缓存时间。

三 PHP与数据库相关缓存

  • PHP OPcache:缓存已编译字节码,减少解释与加载开销。
    sudo apt-get install php-opcache
    sudo phpenmod opcache
    sudo systemctl restart apache2   # 或 php-fpm
    
    在php.ini中启用并合理设置:opcache.enable=1、opcache.memory_consumption、opcache.validate_timestamps(生产建议关闭并配合部署流程刷新)。
  • MySQL查询缓存:在数据库层开启/优化查询缓存(注意不同版本差异与锁争用),对读多写少场景有效。
  • 连接与会话缓存:使用Redis存储会话(如PHP的session.save_handler=redis),减少数据库写入与锁竞争。

四 系统与网络层缓存

  • DNS本地缓存:安装dnsmasq减少域名解析往返时间(首次解析通常30–60 ms,命中缓存后可降至**~2 ms**)。
    sudo apt-get install dnsmasq
    echo "prepend domain-name-servers 127.0.0.1;
        " | sudo tee -a /etc/dhcp/dhclient.conf
    echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
    sudo systemctl restart dnsmasq
    
    验证:dig example.com 两次,观察 Query time 明显下降。
  • 传输层与协议:启用Gzip/Brotli压缩、HTTP/2HTTP/3,并优化SSL会话缓存。
    gzip on;
         gzip_types text/plain application/json application/javascript;
         gzip_min_length 1024;
         gzip_comp_level 6;
        
    brotli on;
        
    listen 443 ssl http2;
        
    ssl_session_cache shared:SSL:10m;
        
    ssl_session_timeout 1d;
        
    ssl_protocols TLSv1.3 TLSv1.2;
        
    
  • TCP与文件描述符:适度增大最大文件描述符、优化本地端口范围TIME_WAIT复用,提升高并发下的连接处理能力。

五 进阶与注意事项

  • 内存文件系统tmpfs:将可丢失的缓存目录(如CMS生成的页面缓存)放入内存,加速读写(重启后数据消失,注意内存占用)。
    sudo mkdir -p /dev/shm/mysite-cache
    sudo mount --bind /dev/shm/mysite-cache /var/www/html/wp-content/cache
    
  • 系统缓存维护与调优:按需清理PageCache/Dentry/Inode(仅维护窗口使用,避免频繁操作影响性能),并适度降低vm.swappiness以减少换页。
    # 仅示例:维护时执行
    sync &
        &
         echo 1 | sudo tee /proc/sys/vm/drop_caches   # PageCache
    sync &
        &
         echo 2 | sudo tee /proc/sys/vm/drop_caches   # dentries/inodes
    sync &
        &
         echo 3 | sudo tee /proc/sys/vm/drop_caches   # 全部
    sudo sysctl -w vm.swappiness=10
    
  • 变更与验证:每次调整配置后,使用浏览器开发者工具curl -Iab/wrkLighthouse进行性能对比;对CDN与代理缓存设置版本化URL/缓存键失效策略,避免用户看到过期内容。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu缓存如何提高网站访问速度
本文地址: https://pptw.com/jishu/777341.html
ubuntu缓存对软件运行有何影响 ubuntu缓存能提升下载速度吗

游客 回复需填写必要信息