Могу ли я переслать запрос http с одного узла.js или сервера python на другой сервер?

Здравствуйте, у меня есть этот вопрос, я еще не нашел ответ. Я хотел бы создать что-то вроде изображения, которое я прикрепляю. Окончательная структура, которую я хочу реализовать

Обычный рабочий процесс должен выглядеть примерно так:

  1. Клиент отправляет запрос на сервер 1;
  2. Сервер 1 получает запрос;
  3. Сервер 1 отправляет клиенту ответ 302 (перенаправление);
  4. Затем клиент отправляет новый http-запрос на сервер 2;
  5. Сервер 2 получает запрос;
  6. Сервер 2 отправляет 200 (нормально) ответ клиенту;

Вместо этого я хотел бы реализовать что-то вроде:

  1. Клиент отправляет запрос на сервер 1;
  2. Сервер 1 получает запрос;
  3. Сервер 1 направляет запрос на сервер 2;
  4. Сервер 2 получает запрос;
  5. Сервер 2 отправляет прямой ответ клиенту;

Поэтому я не хочу отправлять ответ перенаправления с сервера 1 на клиент, а затем новый запрос с клиента на сервер 2!

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

2 ответа

Если вам нужно выполнить некоторую логику, прежде чем server1 выполнит запрос к server2 (например, выбрав конечную точку на сервере 2 на основе некоторого условия по запросу), вы можете использовать функцию запроса из стандартной библиотеки Node.js. http модуль (см. документы по адресу https://nodejs.org/dist/latest-v4.x/docs/api/http.html. Но если вам не нужно выполнять какую-либо логику, то лучше использовать https://www.npmjs.com/package/http-proxy потому что вы избегаете много стандартного кода.

Вам нужно использовать прокси.

Что-то вроде https://www.npmjs.com/package/http-proxy

или вы можете использовать nginx или аналогичный перед сервером node.js в качестве прокси.

Единственное, что запросы должны возвращаться через прокси-сервер, потому что так работает tcp-соединение.

Другие вопросы по тегам