HTTPS-запросы не попадают в API - PullRequest
2 голосов
/ 17 марта 2020

У нас есть интерфейсное приложение React JS, работающее через порт: 5000 (обслуживающий stati c веб-контент) и сервер Node JS Express, работающий через порт 3001 (обслуживающий запросы API) на той же машине. Проблема, с которой мы столкнулись ранее, структура кода и последующее исправление почти совпадают с приведенным ниже аналогичным постом. React & Express сервер не получает API-запросы в production / build

Однако решение, упомянутое в приведенном выше посте, только частично решает нашу проблему. Хотя мы можем выполнить рендеринг и перейти к следующей странице, но API не возвращает никаких данных и просто предоставляет нам файл index. html. Мы заметили, что он работает нормально при локальном запуске или при прямом обращении к IP-адресу сервера по HTTP.

Кроме того, при переходе через защищенное доменное имя HTTPS / SSL через балансировщик нагрузки - иногда он случайным образом отображает вторую страницу после того, как первая страница входа + API нажата, а также обслуживает запросы API с фактическими данными, но иногда он возвращает данные API только после перехода с нескольких страниц или после нескольких нажатий и возврата на исходную страницу, где отображаются данные. Другое наблюдение состоит в том, что когда пропускная способность сети низкая, т.е. когда требуется время для рендеринга / загрузки страницы, она получает данные 80% времени, возвращенного из запроса API.

Мы могли видеть из журналов, что это было сделано ударил запросы API как 200 OK, но обслуживаемое содержимое было index. html, иногда случайно.

Итак, мы подозреваем, что проблема может быть связана с соответствием правил содержимого и настройкой их приоритета на нашем балансировщике нагрузки Kemp (в том же порядке, как показано ниже, где www.zzzzz.com/api/ сопоставляются первыми), который направляет запросы на разные порты на одной машине / сервере, как показано ниже:

У нас есть одна виртуальная главная служба загрузки, которая прослушивает порт: 443 (HTTPS), где эти порты настроены. • Метод планирования: исходный IP-хэш. • Завершение WAF и SSL - включено.

Протокол виртуального IP. Правило содержимого реального сервера. Шаблон Regx и порядок приоритетов 10.xxx: 443 TCP 10.xxx: 3001 / ^ / api * / 1 10.xxx: 5000 Заголовок (Host): www.zzzzz.com 2

Примечание: - изменение порядка не сработало для нас, то есть сначала соответствовало имени домена хоста, а затем для / api / folder.

Любое руководство или помощь будут очень признательны.

Спасибо!

...