У меня есть 2 контейнера - frontend_service
- это внешнее приложение nodejs, созданное с использованием реакции. У меня есть backend_service
, который использует мою бизнес-логику и сообщает MongoDB
. Интерфейс связи с бэкэндом через прокси. Я пытаюсь связаться с бэкэнд-сервисом через самообнаруженное имя сервиса в моем кластере.
Например, у меня есть код, который вызывает пользователя api axios.get(
/ api / v1 / users $ {window.location.search} ).then
прокси-серверы внешнего сервера, которые запрашивают бэкэнд-сервис, примерно так:
// using http-proxy
app.all('/api/v1', (req, res) => {
res.set('Access-Control-Allow-Origin', '*');
apiProxy.web(req, res, { target: 'http://backend_service', changeOrigin: true });
});
Я настроил свои внутренние и внешние службы в kubernetes, однако, когда из моего приложения вызывается api/v1
, запрос не проходит и время ожидания не может разрешить DNS. Я получаю socket hang up
ошибку
Странно то, что, если я захожу в работающий док-контейнер внешнего интерфейса и curl http://backend_service
, он работает как положено.
Я очень запутался, почему запрос не проходит при выполнении через http-proxy
на моем экспресс-сервере