在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的缓存策略,从而提升网站性能和响应速度。