Обнаружение службы не работает с Route 53 и контейнером ECS Nginx Хостинг Угловой код - PullRequest
0 голосов
/ 04 июня 2019

У меня есть статические страницы пользовательского интерфейса, делающие вызовы REST api в другие контейнеры ECS-Fargate.Статические страницы снова размещаются в контейнере с Nginx.Вызовы API не разрешаются службой DNS маршрута 53.Если я раскручиваю экземпляр EC2 и использую nslookup, тогда преобразование адресов происходит правильно.

Все контейнеры находятся в одной подсети, и только Nginx-Angular контейнер имеет публичный IP-адрес.Я хочу получить доступ к контейнеру Nginx-Angular через Интернет, который будет выполнять вызовы API для других контейнеров ECS Fargate.Пожалуйста, сообщите.

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 голосов
/ 27 июня 2019

Я решил проблему, сохранив контейнер angular & nginx в частной подсети. Я настраиваю балансировщик нагрузки приложения с наличием публичного ip в публичной подсети. Я маршрутизирую весь трафик из Интернета, используя механизм обратного прокси-сервера Nginx, и запросы обрабатываются Nginx и перенаправляются в мои контейнеры API с использованием внутреннего DNS Route53. Браузер должен отправлять все запросы только в местоположение Nginx, и он должен решить, куда направить тему частной интрасети, используя внутренний DNS Route53. 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;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...