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