Konfigurowanie odwrotnego proxy NGINX dla witryn obsługiwanych przez S3
Pracuję nad hostingiem statycznych stron internetowych na Amazon S3. Struktura strony byłaby takanazwa-wiadra / nazwa-witryny / files.html. Teraz mój problem polega na tym, że użytkownik może użyć swojej własnej domeny do opublikowania strony. Na przykład: Jest właścicielem domeny takiej jakwww.ABC.com i chce go tam umieścić.
Skonfigurowałem odwrotny serwer proxy na instancji ec2 do obsługi żądań, tj. Jednego uderzeniawww.ABC.com powinna zobaczyć zawartość z wiadra S3 lub nazwa domeny powinna wskazywać na wiadro S3.
Wiem, że istnieją zmiany DNS i aktualizacje rekordów CNAME i A, ale muszę też napisać REGULAMIN w konfiguracji NGINX, aby przekierować URL tak, jak chcę.
To jest struktura, którą mam, nie działa i chciałbym, żeby eksperci spojrzeli na nią: obecnie publikuję moje witryny w subdomeniesites.development.com/bucket-name/sitename
.
To jest mój plik default.conf po instalacji nginx
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;
}
}
Obecnie ustawiam go na serwerze programistycznym, którego adresem URL jesthttp://development.mydomain.com
(jest to niezależna instancja ec2). Mój serwer proxy działa na innej instancji EC2 niżhttp://development.mydomain.com
.
Wymyśliłem jakąś strukturę opartą na sugestiach z różnych źródeł.
To jest to:
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}};
}
}
Nie mam doświadczenia z serwerami NGINX i serwerami proxy, a zatem utknąłem na jakiś czas.
Podziel się komentarzami na podstawie swoich doświadczeń i zasugeruj rozwiązanie.
Dziękuję za uwagę