在CentOS上配置Nginx缓存可以显著提高网站的性能和响应速度。以下是一些关键的缓存设置技巧:
安装Nginx和必要的模块:
sudo yum install epel-release
sudo yum install nginx
sudo yum install nginx-mod-http-cache
配置缓存路径:
在Nginx的http
块中使用proxy_cache_path
指令定义缓存存储路径和相关参数。
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
或location
块中启用缓存:
使用proxy_cache
指令指定使用的缓存区域,并设置缓存策略。
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;
}
}
多级缓存体系: 结合内存缓存和磁盘缓存,适用于内容更新频率差异大的场景。
http {
proxy_cache_path /var/cache/nginx/memory levels=1:2 keys_zone=hot_cache:10m max_size=1g inactive=60m use_temp_path=off;
proxy_cache_path /var/cache/nginx/disk levels=1:2 keys_zone=cold_cache:100m max_size=10g inactive=24h use_temp_path=off;
server {
location / {
proxy_cache hot_cache;
proxy_cache_valid 200 302 10m;
error_page 404 = @backend_pass;
}
location @backend_pass {
proxy_cache cold_cache;
proxy_cache_valid 200 302 1h;
proxy_pass http://backend;
}
}
}
缓存预热: 在网站启动或低峰时段预先加载热门内容到缓存中。
for path in "${warmup_list[@]}"; do
curl -s -o /dev/null https://yoursite.com/$path
done
智能缓存清理:
使用proxy_cache_purge
指令手动清除指定URL的缓存。
location ~ /purge(/.*) {
proxy_cache_purge prod_cache "$scheme$request_method$host$1";
}
缓存压缩: 对缓存内容进行压缩存储,节省空间。
gzip on;
gzip_types text/plain text/css application/json application/javascript;
gzip_min_length 1024;
proxy_cache_valid 200 302 10m;
proxy_cache_use_stale updating;
监控和分析缓存命中率:
使用proxy_cache_status
指令监控缓存命中率,帮助优化缓存策略。
location /cache-status {
proxy_cache_status on;
access_log off;
allow 192.168.1.0/24;
deny all;
}
proxy_cache_bypass
和proxy_no_cache
指令控制缓存的更新。通过以上配置和技巧,你可以在CentOS上高效地配置Nginx缓存,提升网站性能和用户体验[1,4,5,6,7,9,10,11,12,13,14]。