2

私は解決策を考え出し、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;
    }
  }

}
4

1 に答える 1