0

我们在每台主机上的两台服务器上部署了两个具有相同上下文根的 war 文件。保持相同上下文根的原因是它是一场开源战争,并且更改上下文根需要一些调整,因此我们尝试使用相同的上下文根(但是,如果必须,我们愿意更改上下文根)。

以下是主机名和端口名

drhapp05:8085 - 具有上下文根 /openam 的 IDP
drhapp05:8086 - 具有上下文根 /openam 的 IDPProxy

drhapp06:8085 - 具有上下文根 /openam 的 IDP
drhapp06:8086 - 具有上下文根 /openam 的 IDPProxy

我们的目标是,当我们访问 url
idpdev.devs1.int ==> 请求应该转发到 IDP 上运行

 
  drhapp05:8085/openam 或 drhapp06:8085/openam

idpproxydev.devs1.int ==>请求应该转发到运行在

  drhapp05:8086/openam 或 drhapp06:8086/openam 

因此,我们根据 https://community.jboss.org/wiki/VirtualHostsWithJBossAS7上的文档进行了以下更改

在 domain.xml 中(因为我们使用域模式)

       <virtual-server name="devidpvs" default-web-module="OAM-IDP-1.0">
            <alias name="idpdev.devs1.int"/>
            <alias name="drhapp05"/>
            <alias name="drhapp06"/>
       </virtual-server>
       <virtual-server name="devproxyvs" default-web-module="OAM-IDPPROXY-1.0">
            <alias name="idpproxydev.devs1.int"/>
            <alias name="drhapp05"/>
            <alias name="drhapp06"/>
       </virtual-server>

在每次战争中的 jboss-web.xml

在 jboss-web.xml 中的 idp 版本的 openam war (OAM-IDP-1.0.war) 我们

        <jboss-web>
           <context-root>openam</context-root>
           <virtual-host>devidpvs</virtual-host>
         </jboss-web>

在 jboss-web.xml 中的 openam war (OAM-IDPPROXY-1.0) 的 idpproxy 版本中,我们有

        <jboss-web>
           <context-root>openam</context-root>
           <virtual-host>devproxyvs</virtual-host>
         </jboss-web>

最后在 httpd.conf文件中的 modcluster 上,我们将以下内容添加到网络服务器上的 httpd.conf 文件中:

              <VirtualHost *:80>
                ServerName idpdev.devs1.int
              </VirtualHost>
              <VirtualHost *:80>
                ServerName idpproxydev.devs1.int
              </VirtualHost>

此配置不允许同时访问两个 url。

如果我们关闭说
drhapp05:8086 - IDPProxy
drhapp06:8086 - IDPProxy
然后我们可以使用转发请求的 url idpdev.devs1.int/openam 访问 IDP
到 drhapp05:8085/openam 或 drhapp06:8085/openam
反之亦然。

我们尝试了 ProxyPass On 指令,但这会重定向请求而不是转发我们不想要的请求。
有什么想法我们的配置有什么问题吗?
我们还想知道是否有办法在 domain.xml 中的 alias 标记下指定端口名称。

-内存

4

1 回答 1

0
  1. 我们创建了新的 dns 名称以避免重复并更新了 domain.xml(或standalone.xml)。

     <virtual-server name="devidpvs" default-web-module="OAM-IDP-1.0">
      <alias name="idpdev.devs1.int"/>
        <alias name="drhapp05_internal"/>
        <alias name="drhapp06_internal"/>
     </virtual-server>
     <virtual-server name="devproxyvs" default-web-module="OAM-IDPPROXY-1.0">
        <alias name="idpproxydev.devs1.int"/>
        <alias name="drhapp05_external"/>
        <alias name="drhapp06_external"/>
     </virtual-server>
    

使得 drhapp05_external 和 drhapp05_internal的 ip 地址
匹配 drhapp05
drhapp06_external 和 drhapp06_internal 匹配 drhapp06

  1. 在 httpd.conf 我们添加了附加属性 UseAlias

           <VirtualHost *:80>
            ServerName idpdev.devs1.int
            UseAlias 1   
          </VirtualHost>
          <VirtualHost *:80>
            ServerName idpproxydev.devs1.int
            UseAlias 1 
          </VirtualHost>
    

我们想知道是否有办法在 domain.xml 中指定端口号,以确保在.......下 domain.xml 中的唯一性。奇怪的是,主机名在整个 domain.xml 中只能使用一次。
但无论如何,现在我们正在使用上述解决方案并且它有效。

于 2013-04-17T13:44:45.943 回答