在没有端口号的tomcat中访问Web应用程序

时间:2016-09-06 09:17:39

标签: linux apache tomcat

我正在尝试在Linux服务器上安装多个tomcat实例,并且每个实例都会部署一个Web应用程序ROOT。

访问应用程序时,网址格式为:但我不希望最终用户记住应用程序的IP地址或端口。

由于Linux服务器中将使用多个实例,因此默认为80端口(http)和443(https)无法提供帮助。

我们的想法是公开应用程序的DNS名称,看起来Apache HTTP服务器可以帮助我解决这个问题。方法是对的吗?

我认为apache服务器应该是每个linux服务器一个,而每个tomcat实例一个。这可以确认吗?

Apache Tomcat版本是8.5.4,计划是使用apache http服务器版本2.4

1 个答案:

答案 0 :(得分:0)

将Apache HTTPD(或任何其他)设置为前端服务器是一种很好的方法。

您将无法在每个服务器上使用多个Apache HTTPD,因为您不想在URL中使用:端口表示法,至少在更多内容中不可能使用标准HTTP / HTTPS端口在同一台服务器上同时使用一个HTTPD。

如果您打算同时使用http和https,则应为每个虚拟主机创建至少一个虚拟主机。在使用SSL 443端口时,为基于名称的虚拟主机创建虚拟主机存在限制,因此如果要启用多个HTTPS端口,则需要基于IP的虚拟主机。

This is the Apache HTTPD 2.4 virtual host documentation

然后,您可以使用mod_proxytomcat connector将请求转发给每个Tomcat。我个人选择一个或另一个取决于当前的要求,特别是如果Tomcat和Apache HTTPD中的上下文之间存在直接对应关系(在这种情况下我使用AJP)或者需要重写它(mod_rewrite):

httpd://apache.httpd/context1 -> tomcat:XXXX/context1 (ajp tomcat connector)

httpd://apache.httpd/ -> tomcat:XXXX/context2 (mod_rewrite)

httpd://apache.httpd/context3 -> tomcat:XXXX/context4 (mod_rewrite)