var port =":8080" <!--
var endpoint = wsStart + loc.host + port+'/personal/my_random_number/';
Ваш ws://...
использует порт 8080, который, по-видимому, вообще не обрабатывается nginx - по крайней мере, предоставленная вами конфигурация nginx показывает только порт 80 и (закомментировано) 443. Это означает, что, вероятно, есть некоторые (неизвестные) автономные сервер (возможно, nodejs?), который обеспечивает только поддержку простого ws://
.
Таким образом, чтобы обеспечить поддержку wss://
, необходимо добавить эту поддержку на неизвестный сервер веб-сокетов. И если вы хотите поддерживать ws://
и wss://
, они, вероятно, должны быть на разных портах - только немногие серверы позволяют обычному HTTP (или ws://
) и HTTPS (или wss://
) использовать один и тот же порт.
Другой часто используемый параметр - использовать nginx в качестве обратного прокси-сервера для веб-сокетов. В этом случае используются стандартные порты (т.е. больше не 8080), и nginx направляет запрос на внутренний сервер ws://
. Таким образом, wss://
будет автоматически переведен в локальный запрос ws://
, и никаких изменений на локальном сервере веб-сокетов не требуется. См. NGINX как прокси-сервер WebSocket для получения более подробной информации об этом.