Nginx
Nginx自動刪除設置為有效期更長的記憶體?
我設置了一個 Nginx 反向代理伺服器,提供託管在另一台伺服器上的 mp4 文件。現在一切正常,除了記憶體。雖然我
proxy_cache_valid
設置為 1 天(proxy_cache_valid any 1d
),但記憶體總是會在很短的時間(我認為是 5-10 分鐘)後自動刪除。我的文件大小範圍為 200 - 1500MB(平均 700MB)。我無法弄清楚配置有什麼問題。任何事情都可能有所幫助。
以下是配置:
worker_processes auto; worker_rlimit_nofile 100000; events { worker_connections 5000; multi_accept on; use epoll; } http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 10; keepalive_requests 1024; client_body_timeout 12; client_header_timeout 12; send_timeout 10; proxy_cache_path /tmp/mycache keys_zone=mycache:10m use_temp_path=off; limit_conn_zone $binary_remote_addr zone=addr:10m; server { listen 80; server_name localhost; access_log off; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } open_file_cache max=10000 inactive=30s; open_file_cache_valid 60s; open_file_cache_min_uses 5; open_file_cache_errors on; client_body_buffer_size 16K; client_header_buffer_size 1k; client_max_body_size 8m; large_client_header_buffers 2 1k; location / { proxy_cache mycache; proxy_max_temp_file_size 1924m; slice 100m; proxy_cache_key $host$uri$slice_range; proxy_set_header Range $slice_range; proxy_http_version 1.1; proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; proxy_cache_valid any 1d; limit_conn addr 5; proxy_pass http://domain2.com/; secure_link $arg_md5,$arg_expires; secure_link_md5 "secret$secure_link_expires$uri"; if ($secure_link = "") { return 403; } if ($secure_link = "0") { return 410; } } } }
您可以通過修改 Nginx 配置中的proxy_cache_path設置來解決您的問題。在這裡你定義你的儲存來保存你的記憶體對象。有一個inactive=time選項可以解決這個問題:
在 inactive 參數指定的時間內未訪問的記憶體數據將從記憶體中刪除,無論其新鮮度如何。預設情況下,非活動設置為 10 分鐘。
在您的範例中,我會將最短時間延長至 2 天:
proxy_cache_path /tmp/mycache keys_zone=mycache:10m use_temp_path=off inactive=2d;