Ubuntu缓存优化提升网站访问速度
一 浏览器与CDN缓存
location ~* \.(js|css|png|webp|svg|woff2)$ {
expires 365d;
add_header Cache-Control "public, immutable";
access_log off;
}
二 反向代理与应用层缓存
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;
sudo apt-get install redis-server
sudo apt-get install memcached
在应用(如PHP、Python、Node.js)中配置连接与TTL策略,动态内容(如价格、库存)设置较短缓存时间。三 PHP与数据库相关缓存
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(生产建议关闭并配合部署流程刷新)。四 系统与网络层缓存
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 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;
五 进阶与注意事项
sudo mkdir -p /dev/shm/mysite-cache
sudo mount --bind /dev/shm/mysite-cache /var/www/html/wp-content/cache
# 仅示例:维护时执行
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