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