I'm not sure what to call it (proxy/redirection/relay), and I am hoping some software or solution possibly exists for linux.
My intention is to be able to listen on a single public facing ip:port (specifically port 80) and proxy(?) traffic to internal servers each running unique application instances. The data in the TCP connection would be used to determine which internal server to go to, i.e. a distinct instance is meant to be connected to. Which is going to require some form of level7 parsing of the application data, and from that proxy(?) to the correct endpoint.
I am not looking to load balance. Though I have been researching haproxy and similar software to try and better understand my problem. What haproxy does in terms of "proxying" http traffic using information in the http header to determine which internal server to load balance to is very similar to what I would like to do. Which is sort of the problem as searching for this I continually end up in finding something that only parses HTTP tcp traffic, but I need something more generic. Or maybe this is even possible with haproxy, but I didn't see anything that indicated that.
The application protocol I would specifically be working with is Union, and it works over a single port so it should be relayable. And the intention again is to allow multiple instances of union to all listen on the public facing port 80, though each will of course be listening to an internal address/port.
Does this make any sense to anyone? Or am I totally on the wrong track for what I would like to do. Since there are so many load balancers which can work with any TCP related protocol, I would imagine someone has possibly made something with l7 filtering and just ignored the load balancing bit.