1


我正在亚马逊 S3 上托管静态网站。网站的结构是bucket-name/site-name/files.html。现在,我的问题是用户可以使用自己的域来发布网站。例如:他拥有一个类似www.ABC.com的域,并希望在那里托管他的网站。
我已经在 ec2 实例上设置了一个反向代理服务器来代理请求,即有人点击www.ABC.com应该看到来自 S3 存储桶的内容,或者域名应该指向 S3 存储桶。
我知道 DNS 更改和 CNAME 和 A 记录的更新,但我还需要在 NGINX 配置中编写 RULES 以根据需要重定向 URL。

这是我的结构,不起作用,希望专家看看:目前我在子域上发布我的网站sites.development.com/bucket-name/sitename
这是我安装 nginx 后的 default.conf 文件

     server {
     listen       x.x.0.0:80;
     server_name  x.x.x.x;
     access_log  /var/log/nginx/access.log;
     error_log   /var/log/nginx/error.log;
     root        /usr/local/nginx/html;
     index       index.html;


    location / {
        proxy_pass  http://development.mydomain.com:9585;
        include /etc/nginx/proxy_params;
    }
   }

目前我将它设置在开发服务器上,其 URL 是http://development.mydomain.com(这是一个独立的 ec2 实例)。我的代理服务器在不同的 EC2 实例上运行,而不是http://development.mydomain.com.

我根据不同来源的建议提出了一些结构。
就是这个:

    server {
    listen 80;
    server_name x.x.x.x.; //This would be the name on which I have NGINX installed,right?

    set $host_without_www $host; //What would be the host?any host with www pointing to the site on S3?
    if ($host ~* www\.(.*)) {
       set $host_without_www $1;
    }

    location / {
        rewrite ^(.*)$ /$host_without_www$1 break;
        proxy_pass {{s3-bucket-url}};
    }
}

我没有使用 NGINX 和代理服务器的经验,因此停留了一段时间。
请根据您的经验分享意见并提出解决方案。
感谢您的关注

4

0 回答 0