У меня есть конфигурация 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";
}
}