栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在不同端口后面的单个JBoss AS 6实例上运行不同的应用程序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在不同端口后面的单个JBoss AS 6实例上运行不同的应用程序?

编辑:这些说明是针对JBoss AS6的,如原始问题所要求。AS7具有不同的配置文件语法。

您的问题分为两个部分:

  1. 使JBoss监听多个端口
  2. 将请求发送到8081至app1,将8082发送至app2

让JBoss监听多个端口

这很容易。

将这样的行添加到

$JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml

<!-- A HTTP/1.1 Connector on port 8081 --><Connector protocol="HTTP/1.1" port="8081" address="${jboss.bind.address}"    redirectPort="${jboss.web.https.port}" /><!-- A HTTP/1.1 Connector on port 8082 --><Connector protocol="HTTP/1.1" port="8082" address="${jboss.bind.address}"    redirectPort="${jboss.web.https.port}" />

服务器启动时,请在日志中观察以下消息:

11:56:23,639 INFO  [org.apache.coyote.http11.Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-808111:56:23,640 INFO  [org.apache.coyote.http11.Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8082

注意:如果要“正确”执行此操作,则应使用占位符而不是硬编码数字,并进行编辑

$JBOSS_HOME/server/default/conf/bindingservice.beans/meta-INF/bindings-jboss-beans.xml
以定义它们。但是,除非您需要通过管理UI来管理端口,否则这将是过大的选择。

将请求分发到端口8081到app1,将端口8082分发到app2

这要困难得多。JBoss使用其自己的Tomcat引擎,该引擎不支持多个webapp根目录(appbase属性不起作用)。因此,不可能为连接器配置两个不同的目录。可以添加虚拟主机,并

jboss-web.xml
在每个应用程序中使用它来配置它响应的虚拟主机,但这意味着您必须在客户端URL中使用不同的名称。

您在这里有两个选择。

选项1:JBoss Rewritevalve

将其添加到

Host
配置元素中(在其他阀定义之前)
$JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml

 <Valve className="org.jboss.web.rewrite.Rewritevalve" />

创建一个

$JBOSS_HOME/server/default/conf/jboss.web/localhost/rewrite.properties
具有以下内容的文件:

RewriteCond %{SERVER_PORT}  =8081RewriteRule ^/(.*)$  /app1/$1 [L]RewriteCond %{SERVER_PORT}  =8082RewriteRule ^/(.*)$  /app2/$1 [L]

注意:您可能需要创建

$JBOSS_HOME/server/default/conf/jboss.web/localhost/
目录,默认情况下该目录不存在。

注意2:的位置

rewrite.properties
取决于
Valve
标记在中的位置
server.xml
。最直观的放置是与其他
Valve
元素一起使用。但是,它也直接在下面有效
Engine
。在这种情况下,
rewrite.properties
文件需要上移一个目录。

选项2:ROOT上下文中的Servlet过滤器

部署Servlet筛选器以

$JBOSS_HOME/server/default/deploy/ROOT.war/
根据传入端口调度请求。您可以推出自己的自定义过滤器实现,也可以将UrlRewriteFilter与如下配置一起使用:

<rule>  <condition type="port">8081</condition>  <from>/(.*)</from>  <to context="app1">/$1</to></rule><rule>  <condition type="port">8082</condition>  <from>/(.*)</from>  <to context="app2">/$1</to></rule>

也可以看看:

  • https://community.jboss.org/wiki/VirtualHostsWithJBossAS
  • http://docs.jboss.org/jbossweb/3.0.x/rewrite.html

编辑:鉴于JBoss配置的复杂性,您还可以选择位于应用程序服务器前面的基于Apache的反向代理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/466783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号