nginx: redirigir a contenedores acoplables con https habilitado

nginx: redirigir a contenedores acoplables con https habilitado

Tengo dos contenedores ejecutándose en una instancia EC2, el primero usa el puerto 4200 y el segundo 8188. También tengo un nombre de dominio "mi-dominio.com" conectado a mi instancia EC2. Mi objetivo es llegar a estos contenedores a través del dominio y mediante una conexión segura, así que seguí los siguientes pasos.

  • Agregue dos dominios diferentes a cada contenedor llamados "app1.mi-dominio.com" y "app2.mi-dominio.com" (cada dominio se llevará a un contenedor diferente)
  • instalado permite cifrar el certificado
  • servidor nginx instalado en la instancia EC2
  • Agregué la siguiente configuración para habilitar https y reenviar las solicitudes del nombre de dominio a los contenedores como este.
server {
    listen 80;
    server_name my-domaine.com;
    return 301 https://$host$request_uri;
}

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  app1.my-domaine.com;
    port_in_redirect on;

    ssl_certificate "/etc/letsencrypt/live/my-domaine.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/my-domaine.com/privkey.pem";

    location / {
        proxy_pass http://127.0.0.1:4200;
    }

    # added this to redirect any path to the container as well
    location ~ ^/([^/]+)(/.*)?$ {
        proxy_pass http://127.0.0.1:4200$1$2;
    }
}

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  app2.my-domaine.com;
    port_in_redirect on;

    ssl_certificate "/etc/letsencrypt/live/my-domaine.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/my-domaine.com/privkey.pem";

    location / {
        proxy_pass http://127.0.0.1:8188;
    }

    location ~ ^/([^/]+)(/.*)?$ {
        proxy_pass http://127.0.0.1:8188$1$2;
    }
}

El problema que encuentro es un mensaje de error al cargar archivos como.js,.css o.json, a pesar de que he incluido este bloque:

location ~ ^/([^/]+)(/.*)?$ {
        proxy_pass http://127.0.0.1:8188$1$2;
}

También recibo la página de error 404 predeterminada de nginx cuando agrego una ruta al dominio, como "app1.my-domaine.com/admin", por ejemplo. ¿Tiene alguna sugerencia sobre cómo garantizar que todas las solicitudes, incluida cualquier ruta o archivo, se enrute a los contenedores adecuados?

ACTUALIZAR tengo cambios esto

location ~ ^/([^/]+)(/.*)?$ {
        proxy_pass http://127.0.0.1:8188$1$2;
}

a esto

location ~ ^/([^/]+)(/.*)?$ {
        proxy_pass http://127.0.0.1:8188/$1$2;
}

Los archivos CSS y JS se cargan correctamente, pero todavía hay un problema. Cuando voy ahttps://app1.mi-dominio.com/adminen el navegador, me redirige a 127.0.0.1:4200/admin. Esto significa que nginx está redirigiendo la solicitud en lugar de enviarla como proxy.

información relacionada