Java 如何将子域定向到正确的JBoss应用程序?
JBoss新手,我正在配置一些应用程序。我知道如何在ApacheWebServer中实现这一点,但不使用Jboss 我已经在redhat box JBoss 4.2上成功部署了3个应用程序 如果我的服务器名为fruit.mycompany.com,我可以通过以下方式访问这三个应用程序:Java 如何将子域定向到正确的JBoss应用程序?,java,tomcat,jboss,subdomain,virtualhost,Java,Tomcat,Jboss,Subdomain,Virtualhost,JBoss新手,我正在配置一些应用程序。我知道如何在ApacheWebServer中实现这一点,但不使用Jboss 我已经在redhat box JBoss 4.2上成功部署了3个应用程序 如果我的服务器名为fruit.mycompany.com,我可以通过以下方式访问这三个应用程序: http://fruit.mycompany.com:8080/quince http://fruit.mycompany.com:8080/pineapple http://fruit.mycompany.co
http://fruit.mycompany.com:8080/quince
http://fruit.mycompany.com:8080/pineapple
http://fruit.mycompany.com:8080/lime
接下来,我创建了三个子域,它们是服务器的别名
http://quince.mycompany.com
http://pineapple.mycompany.com
http://lime.mycompany.com
如何使每个子域指向其对应的应用程序
我想实际打开
在apache中,我将使用VirtualHost标记将每个子域指向正确的文档根。我如何使用JBoss或Tomcat
我可以通过重定向(Tomcat是否有类似mod_rewrite的功能) 您看过Tomcat Mod_jk吗?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) 将每个应用程序移动到相应“\u apps”文件夹的“ROOT”文件夹
当我遇到类似的情况时,我选择使用Apache重定向;然而,我的Apache已经提供了静态页面(公共网站)。我放弃了Tomcat
情况变得太复杂了。我已经在端口80上运行了一个网站(在JBoss的一个单独实例上)。
我有这三个应用程序,quince、菠萝和莱姆,它们在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,他们不必记住端口号:
重定向到->我真的不认为这是最好的方式,但就像你一样,我厌倦了绕圈跑。所以你的答案+1,非常有用。