Всем привет! Есть бэкенд, который генерирует пнг картинку. Этот бэкенд сидит за nginx:
server { server_name conv.site.com ; client_max_body_size 32m; location / { proxy_pass http://127.0.0.1:3021 ; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } Нужно сделать так, чтоб бэкенд генерил одну и ту же картинку только один раз. То есть когда nginx получает запрос, который уже получал ранее, он возвращал картинку из кеша, и не дергал бэкенд. Время жизни кеша - бессрочное. Но нужно говорить nginx'у, что кеш по определенному запросу устарел, и его нужно удалить. Для этого делаю следующее: в самое начало конфига добавляю вот что: proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=cache:30m max_size=1G; proxy_temp_path /var/lib/nginx/proxy 1 2; proxy_ignore_headers Expires Cache-Control; proxy_cache_use_stale error timeout invalid_header http_502; proxy_cache_bypass $cookie_session; proxy_no_cache $cookie_session; и в самое начало локейшн: location / { proxy_cache cache; proxy_cache_valid 10m; proxy_cache_valid 404 1m; proxy_pass http://127.0.0.1:3021 ; ... После этого в логе вижу: 2019/03/04 12:43:21 [alert] 16000#16000: mmap(MAP_ANON|MAP_SHARED, 104857598951424) failed (12: Cannot allocate memory) при том, что диска на сервере 200гб, а оперативки 8гб. И они ничем не заняты. Как решить эту задачу? Спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,283261,283261#msg-283261 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru