我有一个networking,我运行多个服务器,每个服务器专用于一个给定的服务。
因为大多数服务运行在不同的端口上,我目前正在寻找一种统一“全部”服务到单个“代理”机器的方法。 这个想法是抽象哪个机器正在访问,但仍然允许直接连接,如果需要/要求。
这个“代理”机器只有一个networking接口,它与所有其他服务提供机器是同一networking的一部分。
我已经研究了路由和NAT,但是到目前为止我还没有弄清楚如何使它工作。 我试图用shorewall做到这一点,但找不到明确的例子。 不过,我不完全确定这是最好的/最简单的策略。
这样说,达到这个结果的最好方法是什么?
示例情况:
Proxy IP - Listening port - Send requests to 192.168.0.50 80 (http) 192.168.0.1:80 " 22 (ssh) 192.168.0.2:2222 " 3306 (mysql) 192.168.0.3:3000 " 5432 (postgres) 192.168.0.4:5432 " 5222 (jabber) 192.168.0.5:5222
PS:我不关心代理的单点故障性质。
谢谢
由于Ansgar说你需要使用反向代理,Haproxy可以做到这一点,更多。 资源非常less
请注意:
我想Ansgar本来打算给你使用DNS SRVlogging,它们允许你parsingdns条目,也是ip端口。
http://en.wikipedia.org/wiki/SRV_record
更新
我build议您计算所有服务的组合带宽,如果这低于预期的代理主机networking接口的最大吞吐量,则应该大体上可以,但可能需要一些networkingIO调整。
您需要反向代理连接,这是所有协议都不支持的(例如SSH)。 我build议添加指向DNS中相应服务器的特定于服务的CNAMElogging,而不是创build这种单点故障。