Welcome! Log In Create A New Profile

Advanced

ngx_http_image_filter_module и именованный location

February 27, 2017 03:58AM
Коллеги,
Есть задача:
1) Картинки хранятся в хранилище на Amazon доступ к которому из вне без авторизации запрещен.
2) Нужно тащить из Амазона картинку и ресайзить её.

Для решения этой задачи там где не нужен модуль image_filter я такую задачу решаю так:
1) Есть named location который обеспечивают всю историю с авторизацией
2) И есть несколько обычных location которые отдают контент пользователям уже без авторизации.

Например вот:

location ~ ^/video/(\d+)/(.*\.(?:png))$ {
set $url_full "video/$1/$2";
try_files $uri @s3;
}

location @s3 {
set $bucket 'bucketname';
set $aws_access 'my_key';
set $aws_secret 'my_secret';
set_by_lua $now "return ngx.cookie_time(ngx.time())";
set $string_to_sign "$request_method\n\n\n\nx-amz-date:${now}\n/$bucket/$url_full";
set_hmac_sha1 $aws_signature $aws_secret $string_to_sign;
set_encode_base64 $aws_signature $aws_signature;

resolver 172.31.0.2 valid=300s;
resolver_timeout 10s;

proxy_http_version 1.1;
proxy_set_header Host $bucket.s3.amazonaws.com;
proxy_set_header x-amz-date $now;
proxy_set_header Authorization "AWS $aws_access:$aws_signature";
proxy_buffering off;
proxy_pass https://$bucket.s3.amazonaws.com/$url_full;
}

Так вот коллеги, вопрос в том что аналогичная штука но с использованием image_filter у меня не прокатывает.

Пример location для этих самых картинок которые требуется ресайзить:
location ~ ^/img/(xs|s|m)/(\d+)/(.*\.(?:jpg|gif|png))$ {
set $img_size $1;
set $url_full "img/$2/$3";
try_files $uri @s3;
if ($img_size = "xs") {
set $width 50;
}
if ($img_size = "s") {
set $width 100;
}
if ($img_size = "m") {
set $width 200;
}
image_filter resize $width -;
}
Subject Author Posted

ngx_http_image_filter_module и именованный location

tepkuh February 27, 2017 03:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 205
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready