Tomcat和Apache在一台机器上有两个IP

我有一个简单的静态网站(foo.com)与Apache2服务。 静态网站有一个链接来获取使用tomcat服务的应用程序。 要做到这一点,链接只是指向foo.com:8080/app

最终目标是避免拥有端口号。 我也想避免使用mod_proxy或mod_jk,因为这两个内容(静态页面和应用程序)是非常不相关的,所以我认为这将是一个矫枉过正。 常见的用例是静态页面 – >应用程序[永远不会回来]

以下是我考虑过的一些选项:

  1. 在另一台机器上运行应用程序,并将其IP映射到子域(s1.foo.com)。 然后在这台机器上,使用iptables将80端口转发到8080,以便s1.foo.com/app按预期工作。

  2. 获取一台服务器的附加IP地址。 让子域指向该IP地址,然后使用iptables将IP:8080转发到IP:80。

我的问题是1)这些是否合理? 2)我应该遵循哪些步骤,以免弄乱我的规则链? 3)有更好的select吗?

谢谢,

您最好的select是为服务器获取第二个IP,将其设置为IP别名。 在networking接口eth0上设置第一个IP,在eth0:0上设置第一个IP(第三个为eth0:1,依此类推)。

这里有一个通用的指南,但是为你的Linux发行版特别寻找最近的指令可能更容易:

http://www.cyberciti.biz/faq/linux-creating-or-adding-new-network-alias-to-a-network-card-nic/

一旦你完成了,你将Apache设置为绑定到第一个IP(如现在),Tomcat绑定到新的IP,例如

eth0 - 192.168.0.1 - Apache eth0:0 - 192.168.0.2 - Tomcat 

然后把你的DNS设置成这样:

 example.org - 192.168.0.1 tomcat.example.org - 192.168.0.2 

根本不需要使用:8080,或任何redirect/ IP表转发。 链接只是指向http://tomcat.example.org/whatever/

请注意,这是一个新的networking接口,所以你需要检查你的IPTables规则和:

a)当您不再使用第一个界面时,请closures端口8080

b)确保你检查/设置IPTableslocking新的IP地址,所以只允许80端口。

假设Linux? 只需configuration一个虚拟networking接口,让Tomcat监听所述接口。 你认为合适的DNS地图。

使用Tomcat侦听端口80服务静态和Web应用程序? 如果你不需要Apache的灵活性,那么运行这两个服务器并不总是有意义的。