如何从 Apache 重定向到 Tomcat?

Posted

技术标签:

【中文标题】如何从 Apache 重定向到 Tomcat?【英文标题】:How do I redirect from Apache to Tomcat? 【发布时间】:2010-10-10 20:46:49 【问题描述】:

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

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

我希望这是有道理的。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

以上两个有用的答案都很好,但我更喜欢mod_proxy 而不是mod_jk。与mod_jk 不同,mod_proxy 无需额外安装,而且设置要容易得多。 mod_jk 让您可以更好地控制 Tomcat 参数的详细调整,但如果您只是想要从 Apache 到 Tomcat 的简单重定向,mod_proxy 是不错的选择。

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

正如您已经提到的,完成此操作的常用方法是使用 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。

【讨论】:

【参考方案5】:

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

这个how-to 很容易上手。

【讨论】:

我也推荐这个 - 最好不要让你的 JVM 以 root 身份运行,除非你有其他方法允许它绑定到端口 80。 mod_jk 允许您不以 root 身份运行,并且仍然使用端口 80 通过 Apache 服务请求。 @kgiannakakis:你更喜欢这个而不是 mod_jk 吗? mod_proxy 是一个较新的模块,被认为比 mod_jk 更好。仅从 Apache 的 2.2 版开始支持。我个人只使用过 mod_proxy。 如果此处包含一些操作方法的关键点,则此答案可能会受益匪浅。目前,它只是一个仅链接的答案。

以上是关于如何从 Apache 重定向到 Tomcat?的主要内容,如果未能解决你的问题,请参考以下文章

将tomcat重定向到本地系统中的apache

将tomcat重定向到本地系统中的apache

Apache 使用 Spring Security 重定向到 Tomcat 应用程序

子域的 Apache 2.2 和 tomcat 重定向

Tomcat:如何将外部IP地址访问重定向到其他位置

通过centos 8上的mod_jk将apache httpd重定向到tomcat