Websocket Wss на AWS Application Load Balancer или Network Load Balancer

Я потратил часы, пытаясь придумать решение, и прочитал много решений для веб-сокетов с nginx, но все равно не повезло

У меня есть приложение websocket, контейнерное с докером и работающее на экземплярах ec2 с использованием ecs. мой веб-сокет должен иметь возможность автомасштабирования при необходимости.

Я тестировал возможность подключения с помощью Classic elb, и все работает хорошо, но не поддерживает протокол websocket.

Вниз до ALB и NLB

ALB разрешает только протоколы HTTP и HTTPS и поддерживает веб-сокеты, и я не уверен, как это реализовать, чтобы получить доступ к моему веб-сокету по протоколу WSS, также не удается проверить состояние целевой группы.

NLB работает хорошо, поскольку поддерживает протокол TCP, но единственная проблема заключается в том, что он не завершает работу SSL.

Единственным решением было установить сертификат SSL на EC2 и настроить обратный прокси-сервер nginx для контейнера докеров. но у меня не было радости от этого, так как у меня не было опыта работы с Nginx, у меня может не быть правильной конфигурации. но я все еще не могу подключиться к websocket через wss. Любая помощь приветствуется

Моя основная цель - подключиться к websocket через wss.

worker_processes 1;

events { worker_connections 1024; }

http {

sendfile on;

upstream docker-nginx {
    server nginx:443;
    ssl_certificate /etc/ssl/private/example.chained.crt;
    ssl_certificate_key /etc/ssl/private/example.key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;
}

upstream localhost {
    server apache:443;
}

server {
    listen 443;

    location / {
        proxy_pass         http://localhost;
        proxy_redirect     off;
        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-Host $server_name;
    }
}

server {
    listen 443;

    location / {
        proxy_pass         http://example.com;
        proxy_redirect     off;
        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-Host $server_name;
    }
  }

}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 213
1

Ответы 1

Это было решено с помощью ALB.

ваш вопрос отличный, но не могли бы вы добавить больше деталей в свой ответ на решение?

Arch1tect 24.05.2020 21:40

Другие вопросы по теме