Ubuntu 缓存优化提升网站加载速度
一 分层缓存策略概览
二 浏览器与CDN缓存配置
location ~* \.(js|css|png|webp|svg|woff2)$ {
expires 365d;
add_header Cache-Control "public, immutable";
access_log off;
}
三 反向代理与应用层缓存
http {
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_valid 404 1m;
proxy_cache_lock on;
proxy_cache_use_stale error timeout updating;
add_header X-Cache-Status $upstream_cache_status;
}
}
}
curl -I 查看响应头 X-Cache-Status: HIT/MISS/EXPIRED/STALE。sudo apt update && sudo apt install memcached
sudo nano /etc/memcached.conf
-m 256 # 按内存调大,如 256MB/512MB
-p 11211
-l 127.0.0.1 # 多机部署可改为 0.0.0.0 并配合防火墙
sudo systemctl restart memcached
# PHP 连接示例(安装扩展)
sudo apt install php-memcached
sudo systemctl restart apache2 # 或 php-fpm
四 DNS与系统层缓存
sudo apt install dnsmasq
sudo sed -i 's/^#listen-address=.*/listen-address=127.0.0.1/' /etc/dnsmasq.conf
echo "prepend domain-name-servers 127.0.0.1;" | sudo tee -a /etc/dhcp/dhclient.conf
sudo systemctl restart dnsmasq
dig example.com(首次较高,再次应显著下降)。sudo apt clean && sudo apt autoremove;编译场景使用 ccache/sccache 复用编译结果,缩短发布与构建时间。五 图片与传输层优化
gzip on;
gzip_types text/plain application/json application/javascript text/css;
gzip_min_length 1024;
gzip_comp_level 6;
brotli on;
listen 443 ssl http2;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;