如何设置tomcat7将所有请求转发到appname?

如何设置tomcat7将所有请求转发到appname?

我有一台 tomcat7 服务器托管我的应用程序。我已使用 iptables 设置端口转发,因此现在您可以像这样访问该应用程序:

http://ip-address-of-server/appname

我还设置了域路由,以便您也可以通过以下方式访问该应用程序:

http://appname.com/appname

现在我很困惑,因为我不知道如何映射http://appname.comhttp://appname.com/appname

我发现我需要第二个 Web 服务器(Apache)来转发(代理?重写?我不清楚正确的术语)对 tomcat 的请求,如下所示本文

运行两个 Web 服务器似乎不太好,但我找不到其他方法来实现这一点。我想我的问题是:这样做对吗?为一个应用运行两个 Web 服务器?有没有更好的方法?

谢谢你的时间!

答案1

根据我的经验,你应该运行“第二个 Web 服务器”,即 NGINX 或 Apache 的 HTTPD,并将其用作 Tomcat 的代理。有很多资源可以帮助你以这种方式进行配置,也有很多论据可以说明为什么您希望使用 http 代理来“前置”您的 tomcat servlet。这主要归结为:

  1. 专用 HTTP 服务器(NGINX、Apache 的 HTTPD)旨在高效地为大量客户端提供服务
  2. Tomcat 旨在运行 Java Servlet(应用程序)
  3. 专用的 HTTPD 服务器可以比 Tomcat 更轻松地终止 SSL。

通过在应用程序中同时使用这两种方法,您可以获得较高的效率。

然而,这类事情很大程度上取决于您的 Web 应用程序的特性。

  1. 您计划服务多少客户?
  2. 是否出现交通拥堵?
  3. 它是公司内部使用的东西还是互联网上任何人使用的东西?

另请参阅:

http://javadeveloper.asia/configuring-nginx-in-front-of-tomcat-or-other-java-application-server/

http://blog.rezajp.info/posts/configuring-nginx-for-apache-tomcat-7/

我总是对我的应用程序使用此配置,特别是当您想在 HTTPD 代理后面运行多个 tomcat 实例(以及多个 JVM 实例)时。

相关内容