configuration多个服务器以使用子域共享一个静态IP

我正在寻找一种方法来访问多个服务器通过使用不同的子域共享一个静态IP。 作为一个预警,我从来没有进入过networkingconfiguration,所以我对适当的术语的知识是有限的。

现在我有3个服务器运行在开关后面的Ubuntu 11.10。 我想以server1.example.com,server2.example.com和server3.example.com的身份访问它们。 当所有3个configuration了相同的静态IP时,只有一台机器连接到互联网。 所以我花了很多时间在/ etc / network / interfaces中尝试,这可能是一个很大的错误,在我尝试按照本指南configurationiptables之前。

我无法弄清楚从哪里开始,甚至是Google。 也许我需要一个不同的硬件configuration,目前每台机器都有一个nic,但是如果需要的话我可以find网卡。 除了交换机,我还有一个旧的wrt54g路由器。

编辑

我主要喜欢HTTP访问它们,但SSH也很重要。

你将无法让所有3台机器共享一个IP地址。 不是如何联网工作。 请查看networking路由如何工作的解释。

你可以做什么:设置一个反向代理作为网关,然后根据HTTP主机请求头转发一个地址。 我build议使用磅,因为它是轻量级的,它的唯一目的是成为一个反向HTTP代理。 如果你更熟悉这些,你可以使用apache或者nginx来完成同样的事情。

一旦你有你的反向代理设置,你可以使用NAT为您的服务器,并使用您的静态IPconfiguration您的网关。

示例如何在Pound中执行此操作( 1.2.3.4是您的静态IP,所有server#.example.com都是该静态IP的Alogging):

 ListenHTTP Address 1.2.3.4 Port 80 Service HeadRequire "Host: .*server1.example.com.*" BackEnd Address 192.168.3.11 Port 80 End End Service HeadRequire "Host: .*server2.example.com.*" BackEnd Address 192.168.3.12 Port 80 End End Service HeadRequire "Host: .*server3.example.com.*" BackEnd Address 192.168.3.13 Port 80 End End End 

回应评论

如果您想将反向代理保留在当前的某个服务器上,则必须:

  1. select其中一台服务器作为反向代理。
  2. 让您的路由器将所有HTTPstream量转发到该反向代理。
  3. configuration3台服务器上的HTTP服务器server#.example.com来监听备用端口 – 也许是8080。
  4. 最后,configuration您的反向代理将基于host头的stream量转发到端口8080上的HTTP服务器。

在HTTP服务器上configuration备用端口应该非常简单。 唯一稍微困难的部分是configuration反向代理,但是你可以find很多使用pound,apache或者nginx的例子。

通常情况下,您不能通过名称进行设置,只能通过端口进行select。 我想在理论上可能有一个设备监听一个名字,然后转发到一个基于这个名字的系统,但是我还没有听说过一个实际上会这样做的设备/程序。 你可以有一个networking服务器根据名称不同的回答(因此我相信它在理论上是可能的)。

通常情况下,您将端口转发。 如果你想让server1成为你的发送邮件服务器,那么你将redirect端口25(很有可能),server2作为你的web服务器,你会redirect端口80到server2,如果server3是你的SSL web服务器,那么你会将端口443redirect到它。 通过这种方式,ONE IP正在处理所有3个服务器…但是一个IP只能处理一组作业 – 这些作业可以分为多个服务器。