Как создать простой обратный прокси, предоставляющий несколько сервисов под одним портом

494
Datageek

Общая проблема с микросервисами заключается в том, что их разработка может быть трудоемкой, если вы используете AJAX и пытаетесь читать входные данные от нескольких хостов / портов (из-за междоменных запросов).

Я ищу очень простое решение, которое будет работать с Linux (желательно с использованием Python или Socat), где я могу объединить несколько хостов / портов под одним портом.

host1:port1/service1 and host2:port2/service2 ... -> localhost:port 

Все удаленные хосты / порты могут быть доступны с одного и того же localhost: порта.

Запросы должны быть перенаправлены на основе путей:

localhost:port/service1 -> host1:port1/service1  localhost:port/service2 -> host2:port2/service2 
0

1 ответ на вопрос

1
把友情留在无盐

обратный прокси-сервер http подойдет, как этот конфиг apache с включенным mod_proxy.

Listen port ProxyPass /service1 http://host1:port1/service1 ProxyPass /service2 http://host1:port1/service2 

диспетчеризация localhost: port / service1 и localhost: port / service2 включает знание протокола http. служба не распознается на уровне tcp, но запрашивает http get. я не знаю, что socat может справиться с этим.