为S3托管网站设置NGINX反向代理

时间:2013-09-11 15:01:07

标签: php amazon-web-services nginx amazon-s3 bucket


    我正在亚马逊S3上托管静态网站。该网站的结构将是 bucket-name / site-name / files.html 。现在,我的问题是用户可以使用他自己的域名来发布网站。例如:他拥有像 www.ABC.com 这样的域名,并希望在那里托管他的网站。
    我在ec2实例上设置了一个反向代理服务器来代理请求,即某人点击 www.ABC.com 应该看到来自S3存储桶或域名的内容应该指向S3存储桶。
    我知道有更改和更新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实例)。我的代理服务器运行在与http://development.mydomain.com不同的EC2实例上。

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

    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和代理服务器的经验,因此停留了一段时间 请根据您的经验分享评论并提出解决方案 感谢您的关注

0 个答案:

没有答案
相关问题