37

我正在开发我的第一个 Java 网站。我在端口 8080 上运行 Apache Tomcat,在端口 80 上运行 Apache HTTPD。我可以访问该站点的当前 URL 是(例如)123.4.5.6:8080。在将域指向新 IP 之前,我想从 URL 中删除端口号。

目前我只将 Apache 用于 phpmyadmin,但是我计划将它用于 CGI 脚本和其他东西,一旦我弄清楚mod_jk等等......所以我不想将 Tomcat 的端口更改为 80 并关闭 Apache。

我希望这是有道理的。

4

5 回答 5

42

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

这个方法很容易理解。

于 2009-03-02T20:09:59.520 回答
18

正如您已经提到的,完成此操作的常用方法是使用mod_jkApache HTTPD 转发您希望由 Tomcat 处理的内容。

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

  • 复制mod_jk.so到 Apache HTTPD 的相应模块目录中。
  • 创建配置文件workers.properties
  • 在 Apache HTTPD 中httpd.conf,添加一个配置部分mod_jk
  • 确保将 Tomcat 配置为接受mod_jk协议,该协议通常位于端口 8009 上。

httpd.conf中的行JkMount

JkMount  /examples/* worker1

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

于 2009-03-02T20:50:05.553 回答
2

上面两个有用的答案都很好,但我更喜欢mod_proxy. mod_jkmod_proxy 不需要额外的安装,不像mod_jk,而且设置更容易。 mod_jk使您可以更好地控制 Tomcat 参数的详细调整,但如果您只是想要从 Apache 到 Tomcat 的简单重定向,mod_proxy这是可行的方法。

于 2009-03-02T22:32:14.217 回答
1

如果您希望由 Apache 而不是 Tomcat 提供静态内容,您应该使用 mod_jk:http: //tomcat.apache.org/tomcat-6.0-doc/proxy-howto.html

那么 SSL 呢?如果我们希望 Apache 处理 HTTPS,因为它比 java/Tomcat 更快?

于 2012-06-30T09:32:40.863 回答
0

您应该使用此链接配置您的 tomcat。对于 tomcat 7 http://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html

于 2016-09-16T16:42:11.453 回答