O proxy wss upstream Nginx SSL_read() falhou (SSL: erro:0A000126:Rotinas SSL::eof inesperado durante a leitura)

O proxy wss upstream Nginx SSL_read() falhou (SSL: erro:0A000126:Rotinas SSL::eof inesperado durante a leitura)

O que eu preciso é

Client <--wss---> nginx <--wss--> server

Estou fazendo um proxy wss, já o coloquei funcionando no Apache, mas quero mudar para o nginx agora, aqui está a configuração do apache:

<LocationMatch "/statistics">
        ProxyPass wss://127.0.0.1:23456
        ProxyAddHeaders Off
        ProxyPreserveHost On
        RequestHeader set Host %{HTTP_HOST}s
        RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
</LocationMatch>

No nginx eu uso esta configuração/etc/nginx/nginx.conf

server {
        listen       444 ssl;
        listen       [::]:444 ssl;
        server_name  domain.com www.domain.com;
        root         /usr/share/nginx/html;

        ssl_certificate "/etc/letsencrypt/live/domain/fullchain.pem";
        ssl_certificate_key "/etc/letsencrypt/live/domain/privkey.pem";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;

        ssl_prefer_server_ciphers on;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;


    proxy_ssl_server_name on;
    ssl_protocols TLSv1.2 TLSv1.3;
location /statistics {
    proxy_pass https://127.0.0.1:23456;

    proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      proxy_ssl_name $host;
    proxy_ssl_session_reuse off;


      proxy_ssl_certificate "/etc/letsencrypt/live/domain/fullchain.pem";
      proxy_ssl_certificate_key "/etc/letsencrypt/live/domain/privkey.pem";


      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
}

Meu site carrega bem no Nginx sem nenhum erro de SSL, o que não funciona é o websocket com wss, o websocket com ws também funciona!

Eu uso wscatpara testar a conexão em execução:

wscat -c wss://kaveneger.ir:23456
Connected (press CTRL+C to quit)
> 

Significa que meu endpoint está bem (realmente não precisava desse teste, pois funciona no Apache, mas de qualquer maneira...)

Agora é quando eu faço isso com o nginx

wscat -c wss://domain.com:444/statistics
error: Unexpected server response: 404
> %                                                                             

Registros Nginx

/var/log/nginx/access.log

123.123.123.123 - - [27/Feb/2023:21:53:15 +0000] "GET /statistics HTTP/1.1" 404 0 "-" "-" "-"

/var/log/nginx/error.log

2023/02/27 21:53:49 [crit] 70632#70632: *14 SSL_read() failed (SSL: error:0A000126:SSL routines::unexpected eof while reading) while keepalive, client: 123.123.123.123, server: 0.0.0.0:444

Meu sistema operacional é Rocky Linux 9 e versão nginx: nginx/1.20.1

Já pesquisei bastante e tentei todas as soluções que encontrei mas nada funcionou!


Atualizar

funciona se eu usar location /em vez de location /statistics!

informação relacionada