2012-02-23 125 views
27

如果我给出一个包含Java Web应用程序war文件,我想在本地运行的战争,然后做我只需要一个Tomcat,还是我需要Tomcat的的Apache httpd的(或其他任何Web服务器)?提前致谢!Tomcat是否需要Apache httpd?

回答

39

Tomcat是它自己的网络服务器,所以像Apache的一个单独的Web服务器不是必需的。你可能会想,虽然改变Tomcat的端口,因为它默认为8080,网站通常是在端口80

我认为,人们一般把阿帕奇在Tomcat的面前,使他们能够做这样的事情:

  • 有一个网站后面有几个Tomcat实例。
  • 从Apache提供静态文件以卸载Tomcat。
  • 使用您可能需要的其他Apache功能(模块)。
  • 正如评论@TacticalCoder提到,你需要以root为侦听端口80,因此有些人可能会使用Apache作为一种简单的方法来代理的80端口到端口8080

我会推荐使用YAGNI的方法,并直接使用Tomcat,直到/除非您在其前面找到希望使用Apache的原因。

+0

Ahhh - Tomcat *是Web服务器,我猜“Catalina”是servlet处理器/容器? – IAmYourFaja 2012-02-23 18:50:52

+0

@AdamTannon - 是的,[Catalina](http://en.wikipedia.org/wiki/Apache_Tomcat#Catalina)是servlet容器。 – 2012-02-23 18:54:44

+6

@Bredan Long:*“您可能会希望通过”* [原文如此]更改Tomcat的端口......有一点需要注意,例如,在Un * x操作系统上,您无法在端口80/443上侦听, 。但将Java/Tomcat安装为* root *并不一定是一种好的做法:在Linux上,您可以安装Java而不需要* root *。您也可以安装Tomcat,而不需要* root *。然后,以root身份,您可以使用防火墙(*例如* iptables)将端口80/443透明地重定向到8080/4443(例如)。通常认为这比将Tomcat作为* root *并直接在端口80/443上侦听更“安全”。 – TacticalCoder 2012-02-23 19:12:13

5

Just Tomcat。 HTTPD从来不是Tomcat的必需条件。

+0

如果Tomcat不需要HTTPD,那么tomcat中的哪个进程将处理传入的服务器请求?你能解释一下吗?谢谢。 – 2014-02-11 16:14:22

+0

@KanagaveluSugumar Tomcat在端口8080上运行默认HTTP服务器(因此,设置端口重定向以侦听到达HTTP端口80的请求或在URL请求中指定端口8080)。 此外,在提供的server.xml文件中,您将看到以下元素: <! - Normal HTTP - > <参数名称= “端口” 值 = “8080”/> 要设置在前面的Apache HTTP服务器的tomcat服务器,在server.xml中注释这个条目。 – sactiw 2015-03-31 16:58:55

+0

@sactiw谢谢! – 2015-04-01 05:19:08

0

你只需要一个Tomcat或任何其他Java servlet容器(码头,树脂等)。

0

Tomcat是一个servlet容器,它有自己的http服务器,所以如果你想运行一个war,你只需要一个tomcat,但是如果你想运行一个只包含静态文件的网站(html,js,css ),你应该更好地选择apache,即使tomcat可以这样做:

相关问题