location ~* ^/s3/(.*) { set $bucket ''; set $aws_access ''; set $aws_secret ''; set $url_full "$1"; 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_intercept_errors on; rewrite .* /$url_full break; proxy_pass http://s3.amazonaws.com; }