Проблема в том, что nginx не отображает изображения и показывает 404 not found в некоторых папках. Когда я удаляю кеширование из конфигурации, все работает нормально. Попытка настроить nginx для кеширования статических файлов с этой конфигурацией
location ~* \.(?:css|cur|js|jpg|jpeg|webp|gif|htc|ico|png|html|xml|otf|ttf|eot|woff|woff2|svg)$ {
expires 1y;
access_log off;
add_header Cache-Control "public";
tcp_nodelay off;
open_file_cache max=3000 inactive=120s;
open_file_cache_valid 45s;
open_file_cache_min_uses 2;
open_file_cache_errors off;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_intercept_errors on;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
вот журнал ошибок
2021/08/17 11:08:10 [error] 278986#278986: *3642 open() "/var/www/website/public/cache/medium/product/347/rC0dMIdOJIJNSmpKgm9pVqKVE59HKAl8SKujwxHF.jpg" failed (2: No such file or directory), client: 95.85.108.178, server: ozan.com.tm, request: "GET /cache/medium/produ
ct/347/rC0dMIdOJIJNSmpKgm9pVqKVE59HKAl8SKujwxHF.jpg HTTP/2.0", host: "www.website.tm", referrer: "https://www.website.tm/"
nginx отображает изображения из источника: https://website.tm/storage/velocity/category_icon_path/77/5wiasmLf6hQGAsjsTV4jXsjnG0ELm5ak0rgpV7c2.png
nginx не отображается из: https://website.tm/cache/medium/product/353/jtTzvdT8ZmB6Lu7wFKj969Uzj0qqu1qRUt2CxEbz.jpg
В вашем блоке местоположения изображения отсутствует директива try_files
, которая указывает, что nginx должен обслуживать для запросов, попадающих в это местоположение.
Добавить
try_files $uri $uri/ =404;
в блок location
.