利用 Debian 缓存加速网站更新
一 分层缓存总体思路
二 Nginx 反向代理与静态资源缓存
http {
proxy_cache_path /data/cache levels=1:2 keys_zone=webpages:10m max_size=10g inactive=60m;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_cache webpages;
proxy_cache_valid 200 10m;
proxy_cache_valid 302 2m;
proxy_cache_valid 404 30s;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_min_uses 1;
proxy_cache_methods GET HEAD;
}
# 静态资源长缓存(可配合文件名哈希/版本号)
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
}
三 应用层对象缓存 Memcached 或 Redis
sudo apt update
sudo apt install memcached -y
sudo systemctl start memcached
sudo systemctl enable memcached
$m = new Memcached();
$m->addServer('127.0.0.1', 11211);
$key = 'homepage_data';
$data = $m->get($key);
if (!$data) {
$data = fetch_data_from_database();
$m->set($key, $data, 3600); // 缓存 1 小时
}
四 系统级与发布流程优化
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove