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

时间:2019-06-04 11:59:48

标签: docker nginx amazon-ecs amazon-route53 aws-fargate

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

所有容器都在同一子网中,只有Nginx-Angular容器具有公共ip地址。我希望通过互联网访问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;
       }
}

1 个答案:

答案 0 :(得分:0)

我通过将angular&nginx容器保留在专用子网中解决了这个问题。我使用公共子网中的公共IP设置了应用程序负载平衡器。我使用Nginx反向代理机制路由来自互联网的所有流量,并且请求由Nginx解析,并使用Route53内部DNS转发到我的API容器。浏览器必须仅将所有请求发送到Nginx位置,并且应确定使用Route53内部dns将私有Intranet主题路由到何处。 authenticationservice.local 是我的DNS条目。这是我的nginx.conf。

$refs.{ref name}[0].methodToCall()