Я потратил часы, пытаясь придумать решение, и прочитал много решений для веб-сокетов с 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;
}
}
}





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