IT序号网

static之Nginx image_filter

zhujiabin 2024年08月23日 编程语言 8 0

我将静态存储在 S3 上并使用 nginx作为前端。对于从 S3 获取,我使用这种结构:

location / { 
    try_files $uri @s3; 
} 
 
location @s3 { 
    root /var/www/static.dev; 
    proxy_pass https://bucket.s3-eu-west-1.amazonaws.com; 
    proxy_store off; # for test purposes 
    proxy_store_access all:rw; 
    proxy_temp_path /dev/shm; 
} 

这项工作! 但是我想生成拇指并使用这个位置:

if ( $uri ~ ^/t/ ) { 
    set $w 182; 
    set $h 114; 
} 
if ( $uri ~ ^/m/ ) { 
    set $w 640; 
    set $h 1280; 
} 
if ( $uri ~ ^/l/ ) { 
    set $w 1024; 
    set $h 2048; 
} 
 
location ~ ^/(?:t|m|l)/(.*\.(?:jpg|gif|png))$ { 
    rewrite ^/[t|m|l]+/(.*)$ /$1; 
    image_filter crop $w $h; 
} 

但这不起作用,nginx 返回 415 Unsupported Media Type。 怎么了?

请您参考如下方法:

您可能喜欢在 url 的每个部分使用位置指令:t/m/l。

location ( ~ ^/t/ ) { 
    set $w 182; 
    set $h 114; 
    root /; 
    image_filter crop $w $h; 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!