Estuve allí, antes de tener mis archivos en mi localhost y pude servirlos sin problemas. Ahora, moví mis archivos estáticos a S3, pero quiero servir el archivo de inicio index.html con un dominio personalizado. Desde el index.html debe ser posible navegar a otros .html .
Hasta ahora tengo:
server { listen 443 ssl http2; listen [::]:443 ssl http2; include snippets/letsencrypt.conf; include snippets/ssl-params.conf; charset utf-8; server_name mydomain; location / { proxy_set_header Host 's3-eu-west-1.amazonaws.com'; proxy_set_header Authorization ''; proxy_hide_header x-amz-id-2; proxy_hide_header x-amz-request-id; proxy_hide_header Set-Cookie; proxy_ignore_headers "Set-Cookie"; proxy_intercept_errors on; set $indexfile "s3-eu-west-1.amazonaws.com/myprod-bucket/static/js/frontend/build_v0.5/"; proxy_pass https://$indexfile; # expires 1y; log_not_found off; auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd_finder; } }Parece que no puedo encontrar ningún ejemplo que funcione para mi caso, ¿qué estoy haciendo mal?
ACTUALIZACIÓN: cambié esto un poco según https://stackoverflow.com/a/22843758/977622 y comencé a obtener:
Refused to execute the script from '../vendor.5ad3d736.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
y
Resource interpreted as Stylesheet but transferred with MIME type text/html: "../styles/main.b812e04a.css".
En un escenario de proxy, el tipo de contenido lo especifica el servidor de origen (S3 en este caso), a menos que se anule. Puede especificar tipos MIME en objetos de S3 cuando los cargue. Si lo hace a través de la interfaz web de S3, asegúrese de no desmarcar ' Averiguar tipos de contenido automáticamente '. Las herramientas AWS cli también adivinan los tipos mime automáticamente, a menos que se especifique lo contrario. Si usa otra cosa para cargar los archivos, debe consultar el manual de la herramienta/referencia API correspondiente.
También puede servir su sitio web directamente desde S3, consulte Hospedaje de un sitio web estático en Amazon S3
No estoy seguro de si sigue siendo relevante para usted, pero le sugiero que sirva su CSS y otros archivos estáticos directamente desde S3 y no a través de su Nginx. Es decir, sirva su index.html con un proxy_pass como lo hace ahora, pero los enlaces a los archivos CSS y JS dentro de su index.html deben ser absolutos, con su depósito S3 como dominio.
Esto resolverá su problema aquí y sería mejor por otras razones como:
Tenga en cuenta que sus usuarios seguirán viendo su sitio a través de su propio dominio, solo los archivos CSS y JS se servirán desde el dominio S3.