Всем привет,
Есть nginx сервер, который отдает картинки по следующей конфигурации
fastcgi_cache_path /media/ssd18/nginx-documents-cache levels=1:2 keys_zone=documents:100m inactive=30d max_size=250g;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
location /documents-cache/ {
try_files $uri /index.php =404;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_cache_key $request_uri;
fastcgi_cache documents;
fastcgi_cache_valid 200 30d;
include fastcgi_params;
}
Картинки генерируются php скриптом, но, по идее они кешируются и для повтрого обращения должны доставаться из кеша. И это работает отлично, пока я подгружаю таким образом 1-2 картинки на страничку. Но есть места на сайте, где необходимо загрузить сразу 16 картинок. И тут система начинает работь не как ожидается. Если бы я загружал статичные картинки без кеша, то они бы грузились все вместе, паралельно. Но в случае с кешем бразуер загружает первые 5, а остальные держит в очереди. Загрузив 5 штук он принимается еще за 5-6 и т.д.
Я проверил количество воркеров - их 8 штук, по 1024 соединений на каждый - в этом месте проблемы точно нет. Теперь сижу ломаю голову, почему nginx не хочет отдавать все картинки разом.
Подскажите пожалуйста почему так происходит или, хотя бы, в какую сторону копать?