У меня установлен обратный прокси-сервер в AWS Beanstalk. Цель состоит в том, чтобы nginx извлекал значение из восходящего заголовка Location и сохранял результат с ключом кеша исходного URI запроса, чтобы будущим клиентам также не нужно было следовать перенаправлению.
Диск пространство достигает 68 ГБ здесь: / var / nginx / cache и 30 ГБ здесь: / var / nginx / temp-cache. Итак, дисковое пространство моего прокси-сервера заполняется довольно быстро.
Кто-нибудь знает, как я могу уменьшить или ограничить размер моего кеша? Или есть более эффективный способ сделать это, чтобы мой диск не заполнялся так быстро? Спасибо.
worker_processes 1;
user nginx;
pid /var/run/nginx.pid;
events {
worker_connections 65535;
}
worker_rlimit_nofile 30000;
http {
proxy_cache_path /var/nginx/cache keys_zone=rev-origin:100m levels=1:2 inactive=7d max_size=80g;
proxy_temp_path /var/nginx/temp-cache;
server {
listen 80 default_server;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
charset utf-8;
client_max_body_size 500M;
gzip on;
location / {
proxy_pass https://123456abc.execute-api.us-east-1.amazonaws.com/AB/;
proxy_ssl_server_name on;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_cache rev-origin;
proxy_cache_key $uri;
proxy_cache_valid 200 206 1d;
proxy_intercept_errors on;
recursive_error_pages on;
error_page 301 302 307 = @handle_redirects;
}
location @handle_redirects {
resolver 8.8.8.8;
set $original_uri $uri;
set $orig_loc $upstream_http_location;
# nginx goes to fetch the value from the upstream Location header
proxy_pass $orig_loc;
proxy_cache rev-origin;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirect;
# But we store the result with the cache key of the original request URI
# so that future clients don't need to follow the redirect too
proxy_cache_key $original_uri;
proxy_cache_valid 200 206 3000h;
}
}
}