2009-03-02 57 views
37

我正在使用我的第一个Java站点。我在端口8080上运行Apache Tomcat,在端口80上运行Apache HTTPD。我可以访问该网站的当前URL是(例如)123.4.5.6:8080。我希望删除 URL中的端口号,然后我将该域指向新IP。如何从Apache重定向到Tomcat?

目前我只使用Apache的phpmyadmin,但我打算使用它的CGI脚本和其他的东西,一旦我找出mod_jk etc ...所以我不想改变Tomcat的端口到80转关闭Apache。

我希望这是有道理的。

回答

41

要做的事情的正确方法是将Apache保持在80,Tomcat保持在8080,并使用插件(最好是mod_proxy)从Apache代理Tomcat。 mod_proxy只需要10分钟就可以完成设置。

这个how-to非常简单。

+0

我建议你这也太 - 最好不要有你的JVM以root身份运行,除非你有允许它绑定到端口80 – Alnitak 2009-03-02 20:13:02

15

正如您已经提到的那样,完成这项工作的通常方法是使用Apache HTTPD的mod_jk转发您想要由Tomcat处理的内容。

tomcat.apache.org上有一个Quick HowTo。您需要执行以下操作:

  • mod_jk.so复制到适用于Apache HTTPD的模块目录中。
  • 创建一个配置文件workers.properties
  • 在Apache中的httpd的httpd.conf,增加部分配置mod_jk
  • 确保Tomcat的被配置为接受所述mod_jk协议,这通常是在端口8009

httpd.confJkMount的线条:

JkMount /examples/* worker1 

告诉Apache HTTPD哪些请求要转发到Tomcat。

2

上述两个有用的答案都很好,但我更喜欢mod_proxy而不是mod_jk。与mod_jk不同,不需要为mod_proxy进行额外的安装,而且安装起来要容易得多。 mod_jk为您提供了对Tomcat参数的详细调整的更多控制权,但是如果您只是想从Apache到Tomcat的简单重定向,则需要mod_proxy