NGINX: разные журналы для двух разных веб-сокетов - PullRequest
0 голосов
/ 04 мая 2018

У нас есть два клиента, один javascript и один C ++. C ++ использует libwebsockets. Оба они пытаются подключиться через защищенные веб-сокеты (wss) к нашему серверу веб-сокетов через порт 7000, который находится за сервером NGINX. Когда клиент javascript подключается, соединение установлено успешно, и в журналах портов NGINX 7000 это показывает:

[04/May/2018:12:25:30 +0000] "GET / HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36"

Тем не менее, при попытке соединения с клиентом C ++, соединение не удается, и журналы показывают

[04/May/2018:10:59:40 +0000] "GET / HTTP/1.1" 400 5 "-" "-"

Почему он выбрасывает 400 вместо 101 во втором случае? Мы не уверены, как отладить это. Это то, что мы используем в клиенте websocket

ws->init("wss://echo.websocket.org:7000", nullptr, "your CA root file path");

Клиент просто говорит Connection Failed. Мы попытались проверить данные с помощью wireshark и включить больше журналов на сервере NGINX, но мы не можем понять это. О чем это может быть? Может ли это быть из-за несовпадения версий SSL / TLS?

1 Ответ

0 голосов
/ 10 июня 2018

Оказывается, клиентская библиотека фактически не включала номер порта в запрос, даже если он включен в URL-адрес подключения. Таким образом, либо конфигурирование NGINX для обработки этого конкретного случая, либо включение библиотеки в порт, включенный в запрос, решает задачу.

...