将 S3 提供商(不是 AWS)的域更改为自己的域,而不代理所有流量

将 S3 提供商(不是 AWS)的域更改为自己的域,而不代理所有流量

我想屏蔽 S3 托管商(不是 AWS)的地址https://s3.hoster.com/bucket-ID/filehttps://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;
        }
    }

这很有效,但所有的流量都翻倍了,这没有帮助。

我想要实现的是能够使用我的域作为存储桶,并以某种方式将其中继到托管商域。更改托管商时,我不需要更改所有域,只需以某种方式中继或重写即可。

这能轻松实现吗?还是我需要一些专门的软件?或者根本不起作用?在当前托管商处,我除了创建和删除存储桶外无法进行任何更改。

相关内容