Я реализовал прокси Nginx для автоматического изменения размера и кэширования изображений, которые сохраняются в определенном месте и которые работают нормально. Моя проблема в том, что если я пытаюсь поместить подпапки в мою структуру, система не распознает их. Я пробовал несколько вариантов, но ничего не работает. Моя текущая конфигурация Nginx такова:
#main server
server {
listen xxx.xxx.xxx.xxx:443 ssl http2;
server_name cdn.example.com;
server_name www.cdn.example.com;
client_max_body_size 128m;
disable_symlinks if_not_owner from=$document_root;
root "/var/www/cdn.example.com/someclient";
if ($host ~* ^www\.cdn\.example\.com$) {
rewrite ^(.*)$ https://cdn.example.com$1 permanent;
}
location ~ "^/images/(?<width>(180|208|268|308|334|360|400|416|480|536|616|668|800|960|1072|1336|1920))/(?<image>.+)$"{
proxy_pass http://localhost:9000/images/$width/$image;
proxy_cache sawitaly;
proxy_cache_valid 200 720h;
allow all;
add_header Allow "GET, HEAD" always;
if ($request_method !~ ^(GET|HEAD)$){
return 405;
}
expires max;
add_header Vary "Accept, Accept-Encoding";
add_header X-Image-Cache $upstream_cache_status;
add_header Cache-Control "public";
add_header Strict-Transport-Security "max-age=31536000; preload" always;
}
location /images/ {
proxy_pass http://localhost:9000/;
}
}
#proxy server
server {
listen 9000;
server_name localhost;
allow 127.0.0.1;
deny all;
location ~ "^/images/(?<width>\d+)/(?<image>.+)$" {
alias /var/www/cdn.example.com/someclient/srcimg/$image;
image_filter resize $width -;
image_filter_jpeg_quality 75;
image_filter_webp_quality 75;
image_filter_interlace on;
image_filter_buffer 16m;
}
}
# Cache settings
proxy_cache_path /tmp/nginx-someclient-cache/ levels=1:2 keys_zone=someclient:64m inactive=240h max_size=1024m;
Я не смог заставить ее работать, если изменил структуру папок и поместил изображения во вложенные папки, например /var/www/cdn.example.com/someclient/srcimg/somefolder1/$image
или /var/www/cdn.example.com/someclient/srcimg/somefolder2/$image
.
Чтобы предотвратить любой непреднамеренный доступ к ресурсам на машине, все обращения, кроме расположений изображений, блокируются с помощью 403.
Проблема в том, что я не знаю ни номера, ни имени подпапок, онидинамически генерируются. Любая помощь будет принята с благодарностью!