我花了数小时试图提出一个解决方案,并用nginx阅读了很多Web套接字解决方案,但还是没有运气
我有一个用Docker容器化的websocket应用程序,并使用ecs在ec2实例上运行。我的websocket需要能够在需要时自动缩放。
我已经测试了与Classic elb的连接性,并且一切正常,但是它不支持websocket协议。
下至ALB和NLB
ALB仅允许HTTP和HTTPS协议并支持websocket,但我不确定如何实现通过WSS协议访问我的websocket,而且目标组健康检查失败。
NLB运作良好,因为它允许使用TCP协议,但是唯一的问题是它不会终止SSL。
唯一的解决方案是在EC2上安装SSL证书,并将nginx反向代理设置到docker容器。但是我对此并不感到高兴,因为我没有使用Nginx的经验,我可能没有正确的配置。但我仍然无法通过wss连接到websocket。欢迎任何帮助
我的主要目标是通过wss连接到websocket。
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;
}
}
}
答案 0 :(得分:-3)
此问题已通过使用ALB解决。