Nginx 将查询字符串重写为文件路径

问题描述 投票:0回答:0

我正在为 S3 创建规则,使用文件将查询字符串重写为路径 从浏览器到服务器的请求可以是

http://localhost:8088/bucket-media/1111111_0.jpg?size=large

"size"是s3 bucket中的一个目录,需要代理到S3

https://s3-storage/bucket-media/large/1111111_0.jpg

我的配置

set $bucket "s3-storage";
location /bucket-media/ {
    #set $size $arg_size;
    #rewrite ^ /$size$uri break;
    if ($args ~* "size=(.*)") {
        set $w1 $1;
        rewrite .* /bucket-media/$w1/$uri break;
    }
    proxy_intercept_errors on;
    resolver 8.8.8.8;
    proxy_pass  https://$bucket$uri;
    error_page 404 = @fallback;
}

location @fallback {
    proxy_intercept_errors on;
    proxy_pass http://other-backend/internal/images/missing/?file_name=$uri;
}

它不能正常工作。代理时没有文件名。

https://storage/bucket-media/large/
nginx url-rewriting nginx-config nginx-location
© www.soinside.com 2019 - 2024. All rights reserved.