根据域将特定端口上的所有stream量转发到另一个端口

想象一下,我有10个不同的领域。 所有这些域都有一个Alogging到一个IP地址。 这个IP上有十个不同的服务。 我们假设他们听从端口:80:90 。 使用的协议的默认端口是:80 ,我不能强制用户在域名后加上:82

这里是问题:我想内部转发:80取决于使用的域名。

  • domain0.com – > :80
  • domain1.com – > :81
  • domain2.com – > :82
  • domain3.com – > :83

我search了一下,并遇到了iptables 。 这是我在找什么?

一般来说这不能这样做。 当客户端通过TCP和/或UDP连接时,服务器没有关于客户端用于请求服务器IP地址的域的信息。

既然你提到80端口,你可能会谈论HTTPstream量。 在这种情况下,由于HTTP协议也传输选定的域名,因此可以进行区分。 您可以使用像Apache这样的HTTP服务器,并为充当反向代理的每个域configuration一个虚拟主机,并将stream量转发到正确的端口。 像这样的configuration可能看起来像这样:

 <VirtualHost *:80> ServerName domain1.com ProxyPass / http://server-ip:81/ </VirtualHost> 

为了这个工作模块proxyproxy_http需要被激活。

您可以使用代理或负载均衡器(如haproxy)来完成您要求的操作。 但是,如果你只是想在同一个IP上承载多个站点,那么使用标题将是标准方法。

如果您尝试在同一个IP上承载多个SSL站点,则这两种方法都不起作用,因为标头和url已encryption。