2

JBoss 新手,正在配置一些应用程序。我知道如何在 apache 网络服务器中执行此操作,但不使用 Jboss。

我已经在 Redhat 盒子 JBoss 4.2 上成功部署了 3 个应用程序。

如果我的服务器名为fruit.mycompany.com,我可以通过以下方式访问这三个应用程序:

http://fruit.mycompany.com:8080/quince
http://fruit.mycompany.com:8080/pineapple
http://fruit.mycompany.com:8080/lime

接下来,我创建了三个子域,它们是服务器fruit的别名。

http://quince.mycompany.com
http://pineapple.mycompany.com
http://lime.mycompany.com

如何让每个子域指向它对应的应用程序?

我希望http://quince.mycompany.com实际打开http://fruit.mycompany.com:8080/quince

在 apache 中,我会使用 VirtualHost 标记将每个子域指向正确的文档根目录。我如何使用 JBoss 或 Tomcat 做到这一点?

我可以通过重定向来做到这一点(Tomcat 是否有类似 mod_rewrite 的东西)?

4

3 回答 3

3

Tomcat 支持虚拟主机。你基本上必须:

1)将tomcat的“监听”端口改为80而不是8080。

2)修改tomcat的server.xml以列出您的服务器:

<Engine name="Catalina" defaultHost="quince">
    <Host name="quince"    appBase="quince_apps"/>
    <Host name="pineapple" appBase="pineapple_apps"/>
    <Host name="lime"      appBase="lime_apps"/>
</Engine>

3)将每个应用程序移动到相应“_apps”文件夹的“ROOT”文件夹。

当我遇到类似情况时,我选择使用 Apache 重定向;但是我已经让 Apache 提供静态页面(公共网站)。

于 2009-10-01T21:12:45.587 回答
1

我放弃了Tomcat。

情况变得太复杂了。
我已经在端口 80 上运行了一个网站(在 JBoss 的单独实例上)。
我有这三个应用程序,木瓜、菠萝和酸橙,它们在端口 8080 上运行在它们自己的 JBoss 实例上。

为了解决我的问题,我只是在 80 端口上运行的网站的索引页面上编写了一个 javascript 函数。

我检查位置以查看正在调用哪个域,然后重定向到端口 8080 上的相应网站。

脚本看起来像这样:

var whois=location+" ";
if (whois.indexOf("quince.mycompany.com") > -1)
{ 
    setTimeout('window.location.replace("http://quince.mycompany.com:8080/quince/");', 10);     
    exit;
}
if (whois.indexOf("lime.mycompany.com") > -1)
{ 
    setTimeout('window.location.replace("http://lime.mycompany.com:8080/lime/");', 10);     
    exit;
}
...
// otherwise redirect to the app running on port 80
setTimeout('window.location.replace("http://fruit.mycompany.com/otherapp/");', 10);  

这不是我想要的,但至少我的用户现在有了一个快捷 URL,他们不必记住端口号: http: //lime.mycompany.com重定向到 -> http://lime.langara。 bc.ca:8080/石灰

于 2009-10-29T16:56:48.137 回答
0

你看过 Tomcat Mod_jk http://tomcat.apache.org/connectors-doc/吗?

于 2009-10-01T21:09:57.777 回答