Мы используем 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 открыть туннель или что-то еще?