大佬教程收集整理的这篇文章主要介绍了Nginx作为私有桶的s3代理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将Nginx设置为S3上托管的静态HTML / js webapp的代理.
我阅读了很多教程和帖子,如果我的存储桶设置为公共,我可以使它工作.
我需要Nginx作为代理的原因是我不希望我的存储桶被公开.
在this指南之后,我从this GitHub repo添加了set-misc-Nginx-module.额外模块通过提供AWS密钥和AWS密钥,为存储桶的每个对象构建经过身份验证的S3请求.
我重新编译了Nginx,并设法允许它访问受保护的存储桶.
问题是我无法呈现html,基本上我正在使用我试图代理的存储桶的xml内容.
这是Nginx的配置文件
server {
listen 80;
server_name [MY_DNS];
LOCATIOn * {
set $bucket '[MY_BUCKET]';
set $aws_access '[MY_AWS_KEY]';
set $aws_secret '[MY_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;
}
auth_basic "ReStricted";
auth_basic_user_file /etc/Nginx/.htpasswd;
}
如果我尝试访问我的网站,这就是结果
<> <><>runcated>falseruncated>
<><><><> displayName>[NAME]displayName>
<>
**编辑:** index.html确实将内容类型设置为text / html.
可能我在Nginx配置中遗漏了一些东西.
如果我将整个存储桶设置为公共存储并且使用“简单”代理方法,则一切正常.
以上是大佬教程为你收集整理的Nginx作为私有桶的s3代理全部内容,希望文章能够帮你解决Nginx作为私有桶的s3代理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。