nginx配置如下:
location ~ .*\.(js|css|woff|woff2|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|svg|ico|xml|json|map|xhtml|yaml|cur|eot|ttf|mp4|otf|ogg|webp)$ {
rewrite ^/(.*) /桶名称/test/static/$1 break;
error_page 500 502 503 504 400 403 404 = /404.html;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Authorization '';
proxy_set_header Host s3.us-east-1.amazonaws.com;
proxy_hide_header x-amz-id-2;
proxy_hide_header x-amz-request-id;
proxy_hide_header x-amz-meta-server-side-encryption;
proxy_hide_header x-amz-server-side-encryption;
proxy_hide_header Set-Cookie;
proxy_ignore_headers Set-Cookie;
proxy_intercept_errors on;
add_header Cache-Control max-age=2592000;
proxy_pass https://s3.us-east-1.amazonaws.com;
}
location / {
rewrite ^/$ /桶名称/test/html/index.html break;
rewrite ^/(.*)$ /桶名称/test/html/$1 break;
error_page 500 502 503 504 400 403 404 = /404.html;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Authorization '';
proxy_set_header Host s3.us-east-1.amazonaws.com;
proxy_hide_header x-amz-id-2;
proxy_hide_header x-amz-request-id;
proxy_hide_header x-amz-meta-server-side-encryption;
proxy_hide_header x-amz-server-side-encryption;
proxy_hide_header Set-Cookie;
proxy_ignore_headers Set-Cookie;
proxy_intercept_errors on;
proxy_pass https://s3.us-east-1.amazonaws.com;
}
解决来自 Amazon S3 的 HTTP 5xx 错误 | AWS re:Post
问题现象是upstream_status 返回500、502、503,查阅官网文档发现是因为S3目录前缀是同一个,所有请求都到了一个前缀中,所以分成多个前缀后可以解决问题。