Проблемы HTTPS / SSL в конфигурации многоконтейнерного докера AWS Elastic Beanstalk - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть конфигурация Multidocker, мой HTTP-трафик работает нормально, никаких проблем, однако я получаю 408 каждый раз, когда пытаюсь использовать https

{
    "AWSEBDockerrunVersion": 2,
    "containerDefinitions": [
        {
            "name": "users-managment",
            "image": "....",
            "essential": true,
            "memory": 256,
            "portMappings": [
                {
                    "hostPort": 3000,
                    "containerPort": 3000
                }
            ],
            "environment": [
                {
                    "name": "PORT",
                    "value": "3000" 
                }
            ],
            "mountPoints": []
        },
        {
            "name": "presence",
            "image": "...ecr",
            "essential": true,
            "memory": 256,
            "portMappings": [
                {
                    "hostPort": 3001,
                    "containerPort": 3001
                }
            ],
            "environment": [
                {
                    "name": "USERS_SERVICE",
                    "value": "http://users-managment:3000"
                },
                {
                    "name": "PORT",
                    "value": "3001" 
                }
            ],
            "links": ["users-managment"],
            "mountPoints": []
        },
        {
            "name": "signaling",
            "image": "...dkr.ecr...",
            "environment": [
                {
                    "name": "PORT",
                    "value": "3002" 
                }
            ],
            "essential": true,
            "memory": 256,
            "portMappings": [
                {
                    "hostPort": 3002,
                    "containerPort": 3002
                }
            ],
            "links": ["users-managment"],
            "mountPoints": []
        },
        {
            "name": "api-gateway",
            "image": "...dkr.ecr...",
            "essential": true,
            "memory": 128,
            "portMappings": [
                {
                    "hostPort": 80,
                    "containerPort": 80
                },
                {
                    "hostPort": 443,
                    "containerPort": 443
                }
            ],
            "links": ["signaling", "presence", "users-managment"],
            "mountPoints": []
        }
    ]
}

У меня есть 3 сервера node.js и сервер Nginxвсе изображения загружаются в хранилище контейнеров Amazon Elastic, я добавил SSL-сертификат с помощью менеджера сертификатов Amazon и уже открыл порт 443 в своем классическом балансировщике нагрузки в конфигурации балансировщика нагрузки с эластичным beanstalk. Я проверил группу безопасности, которая прикреплена к приложению EBи перенаправляет весь трафик HTTP и HTTPS на балансировщик нагрузки.

это конфигурация nginx

#The actual HTTPS server
server {
    listen 80;
    listen 443;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    location /users {
        proxy_pass http://users-managment:3000;
    }

    location /docs/users {
       proxy_pass http://users-managment:3000; 
    }

    location /ice/servers {
        proxy_pass http://signaling:3002;
    }

    #For Server-1
    location /signaling/ {
        #Configure proxy to pass data to upstream node1
        proxy_pass http://signaling:3002/socket.io/;
        #HTTP version 1.1 is needed for sockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    #For Server-2
    location /presence/ {
        #Configure proxy to pass data to upstream node2
        proxy_pass http://presence:3001/socket.io/;
        #HTTP version 1.1 is needed for sockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

1 Ответ

0 голосов
/ 27 сентября 2018

Решено путем установки порта экземпляра на 80 и протокола экземпляра на HTTP при сохранении порта 443 балансировщика нагрузки и протокола HTTPS

...