ubuntu缓存如何提高网站访问速度
导读: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; - 应用层对象缓存:使用Redis或Memcached缓存热点数据(如查询结果、会话、配置)。Ubuntu安装示例:
在应用(如PHP、Python、Node.js)中配置连接与TTL策略,动态内容(如价格、库存)设置较短缓存时间。sudo apt-get install redis-server sudo apt-get install memcached
三 PHP与数据库相关缓存
- PHP OPcache:缓存已编译字节码,减少解释与加载开销。
在php.ini中启用并合理设置:opcache.enable=1、opcache.memory_consumption、opcache.validate_timestamps(生产建议关闭并配合部署流程刷新)。sudo apt-get install php-opcache sudo phpenmod opcache sudo systemctl restart apache2 # 或 php-fpm - MySQL查询缓存:在数据库层开启/优化查询缓存(注意不同版本差异与锁争用),对读多写少场景有效。
- 连接与会话缓存:使用Redis存储会话(如PHP的session.save_handler=redis),减少数据库写入与锁竞争。
四 系统与网络层缓存
- DNS本地缓存:安装dnsmasq减少域名解析往返时间(首次解析通常30–60 ms,命中缓存后可降至**~2 ms**)。
验证:dig example.com 两次,观察 Query time 明显下降。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 - 传输层与协议:启用Gzip/Brotli压缩、HTTP/2或HTTP/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 -I、ab/wrk或Lighthouse进行性能对比;对CDN与代理缓存设置版本化URL/缓存键与失效策略,避免用户看到过期内容。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu缓存如何提高网站访问速度
本文地址: https://pptw.com/jishu/777341.html
