Доступ к удаленным исходящим потокам без SSL, когда локальный NGINX в качестве прокси-сервера revrse поддерживает SSL с сокетами - PullRequest
0 голосов
/ 14 марта 2019

Мы используем NGINX в качестве обратного прокси-сервера и инкапсулируем веб-сервер и службы Node в SSL. Это означает, что все, что использует обратный прокси , должно использовать протокол https. Некоторые из этих служб настроены для взаимодействия с другими удаленными службами, на которых не работает NGINX (устаревшая версия), с пакетом sockets.io.

Другие сервисы настроены так в местном NGINX:

восходящий файл:

# HVR DCAM-9
upstream dcam-9_socket { 
    ip_hash;
    server 10.10.100.9:80;
}
upstream dcam-9_data { 
    ip_hash;
    server 10.10.100.9:8080;
}

conf файл:

# HVR dcam-9
location /dcam-9/ivt-hvr-web-app/ {
    proxy_pass http://10.10.100.9:80/;
}
location /dcam-9_socket/ {
    proxy_pass http://10.10.100.9:80/socket.io/; 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
location /dcam-9_socket_data/{
    proxy_pass http://dcam-9_data/socket.io/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
location /dcam-9_files/ {
    proxy_pass http://dcam-9_data/;
}

Доступ к услугам со следующими данными:

    let socketClient = io(
      location,
      {
        path: path,
        query:
          'key=' +
          encryptPreSharedKey(hvr.preSharedKey) +
          '&uuid=' + this.about.sc_uuid +
          '&type=alarms'
      })

Где location равно localhost, а path равно /dcam-9_socket_data/socket.io (как указано в информации о местоположении выше).

Я получаю следующую ошибку:

12:21:00.454: DCAM-9: connect_error [503] xhr poll error
12:21:00.456: DCAM-9: connect_error [503] xhr poll error

Где 503, конечно, СЛУЖБА НЕДОСТУПНА . Следует отметить, что все это работает, когда NGINX не SSL включен.

Есть ли что-то, чего мне не хватает в файлах upstream или conf при включенном SSL, которые должны быть там?

РЕДАКТИРОВАТЬ: Вот что я думаю, что происходит. потому что я не вижу информации в файлах журналов, данные выводятся в порядке. Однако возвращаемые данные, которые возвращаются как HTTP (не-SSL), являются проблематичными. Однако не должен ли socket.io-client открыть туннель или что-то еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...