服务发现不适用于 Route 53 和 ECS Nginx 容器托管 Angular 代码

Service Discovery not working with Route 53 and ECS Nginx container Hosting Angular code

我有静态 UI 页面对其他 ECS-Fargate 容器进行 REST api 调用。静态页面再次托管在具有 Nginx 的容器中。 api 调用未由 route 53 DNS 服务解析。如果我启动一个 EC2 实例并使用 nslookup,那么地址转换就会正确进行。

所有容器都在同一个子网中,只有 Nginx-Angular 容器有一个 public ip 地址。我希望通过 Internet 访问 Nginx-Angular 容器,这将对其他 ECS Fargate 容器进行 api 调用。请指教

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;
       }
}

我通过将 angular & nginx 容器保留在私有子网中解决了这个问题。我在 public 子网中设置了一个具有 public ip 的应用程序负载均衡器。我使用 Nginx 反向代理机制路由来自互联网的所有流量,请求由 Nginx 解析并使用 Route53 内部 DNS 转发到我的 API 容器。浏览器必须仅将所有请求发送到 Nginx 位置,并且它应该决定使用 Route53 内部 dns 将私有 Intranet 主题路由到哪里。 authenticationservice.local 是我的 DNS 条目。这是我的 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;
    }
  }
}