Нулевой ответ через http-proxy-middleware - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь отладить прокси в Express, используя http-proxy-middleware, но независимо от того, что я делаю, я получаю абсолютно нулевой ответ.Конечная точка отправляет ответ, но прокси-сервер никогда не возвращает его, и событие onProxyRes никогда не инициируется.Также к конечной точке можно получить доступ напрямую через curl, Insomnia, fetch API и request-promise и используется в качестве API для наших клиентов.

Даже с такой простой настройкой, как:

app.use('/api', proxy({
  target: 'https://my.secret.endpoint',
  changeOrigin: true
});

Я получаю абсолютно нулевой ответ, за исключением ECONNRESET после тайм-аута.Есть предложения?

Ответы [ 3 ]

0 голосов
/ 28 сентября 2018

ViggoV
Вам нужно отключить SSL, когда целью является https.

Примерно так:

app.use('/api', proxy({
  target: 'https://my.secret.endpoint',
  changeOrigin: true,
  secure: false
});
0 голосов
/ 07 апреля 2019

Другое решение для тех, кто приходит сюда с той же проблемой, но не решает ее.

В конфигурации прокси убедитесь, что вы соответствуете любому пути с двойным ** не только *

const proxy = require("http-proxy-middleware");
module.exports = function(app) {
  app.use(proxy("/api/**", { // https://github.com/chimurai/http-proxy-middleware
    target: "http://localhost:5000",
    secure: false
  }));
};

Для более подробной информации проверьте ссылку

0 голосов
/ 11 сентября 2018

Эврика! Я нашел ответ, который искал! Нарушившая сторона была (в моем случае) промежуточным программным обеспечением express.urlencoded(), которое совершает некоторые хитрости, которые в конечном итоге портят прокси. Эту проблему можно решить, применив связующее ПО после прокси-сервера. Другое промежуточное программное обеспечение, которое может сделать это, включает cookie-parser и bodyParser (оба из которых устарели).

Подробнее по этому вопросу здесь: https://github.com/chimurai/http-proxy-middleware/issues/40

...