【问题标题】:Accessing Web application in tomcat without port numbers在没有端口号的tomcat中访问Web应用程序
【发布时间】:2017-01-13 16:28:43
【问题描述】:

我试图在 Linux 服务器上拥有多个 tomcat 实例,每个实例都将部署一个 Web 应用程序 ROOT。

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

由于在 linux 服务器中会使用多个实例,因此默认为 80 端口 ( http ) 和 443 ( https ) 无济于事。

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

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

Apache Tomcat 版本为 8.5.4,计划使用 apache http server 版本2.4

【问题讨论】:

    标签: linux apache tomcat


    【解决方案1】:

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

    您将不能在每台服务器上使用多个 Apache HTTPD,因为您不想在 url 中使用 :port 表示法,至少不能在更多的情况下使用标准 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 2015-03-23
      相关资源
      最近更新 更多