![将 S3 提供商(不是 AWS)的域更改为自己的域,而不代理所有流量](https://linux22.com/image/738975/%E5%B0%86%20S3%20%E6%8F%90%E4%BE%9B%E5%95%86%EF%BC%88%E4%B8%8D%E6%98%AF%20AWS%EF%BC%89%E7%9A%84%E5%9F%9F%E6%9B%B4%E6%94%B9%E4%B8%BA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%9F%9F%EF%BC%8C%E8%80%8C%E4%B8%8D%E4%BB%A3%E7%90%86%E6%89%80%E6%9C%89%E6%B5%81%E9%87%8F.png)
我想屏蔽 S3 托管商(不是 AWS)的地址https://s3.hoster.com/bucket-ID/file到https://s3.mydomain.com/bucket-ID/file因为这是一个商业项目,我希望有自己的域名并且不存在任何证书问题。
到目前为止,我通过 nginx 执行了以下操作:
server {
listen 80;
listen [::]:80;
server_name s3.mydomain.com;
return 301 https://$server_name$request_uri ;
}
server {
# SSL configuration
listen 443 ssl;
listen [::]:443 ssl; # ssl on;
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
server_name s3.mydomain.com; set $cors '' ;
if ($http_origin ~* (.*\.mydomain\.com)) {
set $cors 'true' ;
} # add security header SC-1147
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' blob: data: https://$server_name ";
add_header Referrer-Policy "same-origin";
add_header Feature-Policy "vibrate 'self' ; speaker * ; fullscreen *; sync-xhr 'self' ; notifications 'self' ; push 'self' ; geolocation 'self'; midi 'self'; microphone 'self'; camera 'self'; magnetometer 'self'; gyroscope 'self'; payment 'none'; " ;
location / {
proxy_cookie_domain ~ s3.hoster.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://s3.hoster.com;
}
}
这很有效,但所有的流量都翻倍了,这没有帮助。
我想要实现的是能够使用我的域作为存储桶,并以某种方式将其中继到托管商域。更改托管商时,我不需要更改所有域,只需以某种方式中继或重写即可。
这能轻松实现吗?还是我需要一些专门的软件?或者根本不起作用?在当前托管商处,我除了创建和删除存储桶外无法进行任何更改。