私は解決策を考え出し、nginxで多くのWebソケットソリューションを読むのに何時間も費やしましたが、まだ運がありません
docker でコンテナー化され、ecs を使用して ec2 インスタンスで実行されている websocket アプリケーションがあります。私の websocket は、必要に応じて自動スケーリングできる必要があります。
Classic elb との接続をテストしましたが、すべて正常に動作しますが、websocket プロトコルをサポートしていません。
ALB と NLB にダウン
ALB は HTTP および HTTPS プロトコルのみを許可し、Websock をサポートします。WSS プロトコルを介して Websocket にアクセスするためにそれを実装する方法がわかりません。ターゲット グループのヘルス チェックも失敗します。
NLB は TCP プロトコルを許可するのでうまく機能しますが、唯一の問題は SSL を終了しないことです。
唯一の解決策は、SSL 証明書を EC2 にインストールし、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;
}
}
}