location ~* ^/s3/(.*) { proxy_cache static; proxy_cache_valid 200 24h; proxy_hide_header x-amz-id-2; proxy_hide_header x-amz-request-id; proxy_hide_header Set-Cookie; proxy_ignore_headers Set-Cookie; 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 "GET\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; 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; }