在Debian系统上优化Nginx的缓存策略可以通过以下步骤进行:
sudo apt update
sudo apt install nginx
sudo mkdir -p /var/cache/nginx
sudo chown -R www-data:www-data /var/cache/nginx
/etc/nginx/nginx.conf,或者你可以选择编辑特定站点的配置文件,通常位于 /etc/nginx/sites-available/default。sudo nano /etc/nginx/nginx.conf
http、server 或 location 块中添加缓存相关的配置。以下是一个示例配置:http {
# 缓存路径和参数
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Proxy-Cache $upstream_cache_status;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
}
proxy_cache_path:定义缓存路径和相关参数。
levels=1:2:定义缓存目录的层级结构。keys_zone=my_cache:10m:定义缓存区域的名称和大小。max_size=1g:定义缓存的最大大小。inactive=60m:定义缓存项在未被访问后多久失效。use_temp_path=off:禁用临时文件路径。proxy_cache my_cache:启用名为 my_cache 的缓存区域。proxy_pass http://backend_server:指定后端服务器的地址。proxy_cache_valid:定义不同HTTP状态码的缓存时间。add_header X-Proxy-Cache $upstream_cache_status:添加一个HTTP头,显示缓存状态。location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:为静态文件设置缓存控制头。sudo nginx -t
sudo systemctl restart nginx
强缓存和协商缓存:
cache-control 和 expires 控制。location /static/ {
add_header cache-control "public, max-age=31536000";
expires 1y;
}
location /dynamic/ {
add_header last-modified "";
etag on;
}
启用Gzip压缩: Nginx支持在传输响应之前对内容进行压缩,减少带宽使用并提升用户体验。
http {
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/xml text/css application/javascript;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/certificate.key;
}
通过以上步骤和配置,你可以在Debian系统上优化Nginx的缓存策略,从而提升网站性能和响应速度。