下面是我的nginx配置。
server_name myserver.com;
location ~ /(in|sr)/(en|tm)/(.+\.(css|js)) {
proxy_set_header Host http://mybucketabc.s3.amazonaws.com;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Authorization '';
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=31536000;
rewrite ^/(in|sr)/(en|tm)/(.*) /$1/$2/$3 break;
proxy_pass http://mybucketabc.s3.amazonaws.com;
}
当我尝试访问http://myserver.com/in/en/main.9bd9926d.js时,我收到“ 400错误的请求”
但是直接访问http://mybucketabc.s3.amazonaws.com/in/en/main.9bd9926d.js很好。
我对html和svg文件具有类似的代理传递规则,两者都可以正常工作,但对.js文件的请求始终会抛出“ 400错误请求”。
我们非常感谢您的帮助。
答案 0 :(得分:1)
更正主机后,此问题得到解决。
主机错误 proxy_set_header主机http://mybucketabc.s3.amazonaws.com;
正确的主机(已删除“ http://”) proxy_set_header主机mybucketabc.s3.amazonaws.com;