将 Apache 中的域动态指向在 Tomcat 上运行的应用程序

将 Apache 中的域动态指向在 Tomcat 上运行的应用程序

我有个问题。假设我有 API,允许我动态添加 DNS 记录。现在,我想在 Tomcat 上运行简单的应用程序,并将 Apache 放在它前面,这样任何添加到指向此 Apache 的 DNS 的域都将由正在运行的应用程序提供服务。我读了一些关于动态配置的大规模虚拟托管的内容http://httpd.apache.org/docs/2.0/vhosts/mass.html但是当域指向某个目录时,这种方法会起作用,而我通常使用 mod_jk 来同时使用 Apache 和 Tomcat。所以我的另一个发现是 mod_proxy,但如何告诉 apache 简单地为 Web 应用程序上的任何域提供服务?

如果我问的是管理专家们显而易见的问题,请原谅我,但我对这个问题没有太多经验。

提前致谢!

康拉德

答案1

如果我理解正确的话,这很简单 - Apache 配置中列出的第一个虚拟主机会捕获服务器的任何未知域名。因此,您需要做的就是启用基于名称的虚拟主机,并仅定义一个默认 vhost 来 jkmount 您的 Tomcat webapp。我更喜欢对 Apache <=> Tomcat 使用 mod_jk。

NameVirtualHost *:80

LoadModule jk_module /usr/local/lib/mod_jk.so
JkShmFile      /var/log/httpd/mod_jk.shm
JkLogFile      /var/log/httpd/mod_jk.log
JkLogLevel     error

<VirtualHost *:80>
 ...other options ...
 JkMount /* ajp13
</VirtualHost>

这是基本设置,看这里了解更多信息。

答案2

我没有使用 tomcat 的经验,但使用 apache hooks 可以构建一个拦截请求处理阶段的模块,并根据“hostname”属性进行重定向。希望对您有所帮助。

相关内容