Tengo páginas de interfaz de usuario estáticas que realizan llamadas REST api a otros contenedores ECS-Fargate. Las páginas estáticas se alojan nuevamente en un contenedor que tiene Nginx. El servicio de DNS de la ruta 53 no resuelve las llamadas a la API. Si abro una instancia EC2 y uso nslookup, la traducción de la dirección se realiza correctamente.
Todos los contenedores están en la misma subred y solo el contenedor Nginx-Angular tiene una dirección IP pública. Deseo acceder al contenedor Nginx-Angular a través de Internet, que realizará llamadas API a otros contenedores ECS Fargate. Por favor avise.
nginx.conf
worker_processes 1; events { worker_connections 1024; } http { server { #listen 80; server_name localhost; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; listen 443 ssl; root /usr/share/nginx/html/login-ui; index index.html index.htm; include /etc/nginx/mime.types; gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; location / { try_files $uri $uri/ /index.html; } }Resolví el problema de mantener el contenedor angular y nginx en la subred privada. Configuré un balanceador de carga de aplicaciones con una IP pública en la subred pública. Enruto todo el tráfico de Internet mediante el mecanismo de proxy inverso de Nginx y Nginx resuelve las solicitudes y las reenvía a mis contenedores API mediante el DNS interno de Route53. El navegador debe enviar todas las solicitudes solo a una ubicación de Nginx y debe decidir dónde enrutar el tema de la intranet privada mediante el dns interno de Route53. authenticationservice.local es mi entrada de DNS. Aquí está mi nginx.conf.
worker_processes 1; events { worker_connections 1024; } http { server { server_name localhost; resolver 127.0.0.1; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; listen 443 ssl; root /usr/share/nginx/html/login-ui; index index.html index.htm; include /etc/nginx/mime.types; gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; location / { try_files $uri $uri/ /index.html; } location /test/api/ { rewrite /test/api/login/ break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://authenticationservice.local:8443/api/login; } } }