在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]。