Как сделать обратный прокси с node.js для блестящего приложения - PullRequest
0 голосов
/ 14 февраля 2019

РЕДАКТИРОВАТЬ

Я думаю, что проблема может быть в том, что соединение WebSocket не проходит через proxy node.js.Как авторизовать соединение с WebSocket?


У меня есть веб-приложение, размещенное на сервере nodeJS.На том же виртуальном компьютере у меня также есть блестящий сервер, на котором размещено приложение.Я использую узел для перенаправления трафика на порт 3838 (блестящий) при запросе некоторого URL.

Я использую этот код на узле:

app.use('/the-shiny-app', proxy({target: 'http://localhost:3838', changeOrigin: true}));

С этим параметром все отлично работает на блестящемприложение, когда я захожу на мой домен / the -iny-app / *, за исключением случаев, когда я пытаюсь запустить код в поле кода.

Когда я пытаюсь запустить код, я получаю эту ошибку на консоли chrome:

 Connection closed. Info: {"type":"close","code":4503,"reason":"The application unexpectedly exited","wasClean":true}

Пример того, что я имею в виду под кодом:

enter image description here

, если я не использую node.js и перенаправляю трафик(на уровне ОС) с порта 80 напрямую на 3838 все работает нормально.

sudo iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-ports 3838

Я не знаю точно, какой тип обмена делается между браузером и блестящим сервером, когда мы запускаем код, но, возможно,используемый протокол заблокирован node.js.

1 Ответ

0 голосов
/ 14 февраля 2019

Я нашел проблему.Как сказал Энтони Гиббс, вам нужно настроить обновление WebSocket.Я использую http-proxy-middleware, вы можете найти документ здесь: https://github.com/chimurai/http-proxy-middleware

...