um proxy reverso http funcionará, assim como a configuração do apache com o mod_proxy ativado.
Listen port
ProxyPass /service1 http://host1:port1/service1
ProxyPass /service2 http://host1:port1/service2
despachando localhost: port / service1 e localhost: port / service2 envolve conhecimento do protocolo http. o serviço não é diferenciado na camada tcp, mas uma solicitação http get. Eu não estou ciente de que socat pode lidar com isso.