ibm http server+websphere集成配置

ihs:ibm http server
ihs plugin:ibm http server
关于ihs和plugin的一些知识
ihs就是一个以apache为基础的web服务器,由于其出色的静态页面处理。
ihs的安装就是next,next完成。
plugin的安装也是一步一步完成,需要注意的是其中的一步需要指定ihs的配置文件,这个时候安装程序会对ihs的配置文件httpd.conf修改
添加以下两行:

Xml代码 复制代码
  1. LoadModule was_ap20_module "D:\Program Files\IBM\WebSpherePlugins\bin\mod_was_ap20_http.dll"   
  2. WebSpherePluginConfig "D:\Program Files\IBM\WebSpherePlugins\config\webserver1\plugin-cfg.xml"  
LoadModule was_ap20_module "D:\Program Files\IBM\WebSpherePlugins\bin\mod_was_ap20_http.dll"
WebSpherePluginConfig "D:\Program Files\IBM\WebSpherePlugins\config\webserver1\plugin-cfg.xml"

 第一行:估计是连plugin的一个dll文件
第二行:就是指定了plugin安装目录的的配置文件
如果仅仅是简单的web请求转发到应用服务器,仅仅需要配置plugin-cfg.xml就可以。
一个最重要的配置入口如下    
 

Xml代码 复制代码
  1. <Route ServerCluster="angelServer_Cluster"  
  2.         UriGroup="angelServer_Cluster_URIs" VirtualHostGroup="default_host"/>  
<Route ServerCluster="angelServer_Cluster"
        UriGroup="angelServer_Cluster_URIs" VirtualHostGroup="default_host"/>

 
        
 这个route指的是 一个url来自"default_host"的"angelServer_Cluster_URIs"请求会通过ServerCluster定义的服务器做请求转发。
 
 1.VirtualHostGroup的定义
 以下是一个典型的VirtualHostGroup定义

Xml代码 复制代码
  1. <VirtualHostGroup Name="default_host">  
  2.        <VirtualHost Name="*:9080"/>  
  3.        <VirtualHost Name="*:80"/>  
  4.        <VirtualHost Name="*:9443"/>  
  5.    </VirtualHostGroup>  
 <VirtualHostGroup Name="default_host">
        <VirtualHost Name="*:9080"/>
        <VirtualHost Name="*:80"/>
        <VirtualHost Name="*:9443"/>
    </VirtualHostGroup>

 
    上述的定义描述了一个虚拟主机的组,所有满足这个组的任何一个虚拟主机的url请求都是符合这个route的转发要求的,
    官方的解释如下:
     The name used for a virtual or real machine used to determine if incoming requests should be handled by WebSphere Application Server or not. Use this element to specify host names that will be in the HTTP Host header which should be seen for requests that need to be handled by the application server.
   
    比如:http://127.0.0.1/angelServer就是一个符合请求的url。
    为什么这里取名为VirtualHostGroup而不是HostGroup,我的理解是目前互联网的大部分应用都是基于虚拟主机的,很有可能plugin所安装的机器
    上面的webServer就是做了一个多虚拟主机。
      补充:开开始对于拟主机的理解还仅仅限于dns,不错dns是必须支持的。看看以下场景
      A:请求www.aaa.com/index.html
      B.请求www.bbb.com/index.html
           而且这两个域名只对应一个主机。仅仅单靠dns是无法做到的,必须要用到虚拟主机的技术。如果仅靠DNS的那AB两个请求就是一个资源了,无法定制个性的主页。
   
 2.UriGroup的定义
 

Xml代码 复制代码
  1. <UriGroup Name="angelServer_Cluster_URIs">  
  2.         <Uri Name="/angelServer/remoting/*"/>  
  3.         <Uri Name="/angelServer/*"/>  
  4.   </UriGroup>  
<UriGroup Name="angelServer_Cluster_URIs">
        <Uri Name="/angelServer/remoting/*"/>
        <Uri Name="/angelServer/*"/>
  </UriGroup>

 
  试想一下VirtualHostGroup定义了虚拟主机的条件,后面的url请求串也需要做限制。
  上述的定义就是把所有满足/angelServer/remoting/*和/angelServer/* 的请求做转发。

UriGroup 用于定义哪些请求交给websphere去处理。
  
 3.ServerCluster的定义

Xml代码 复制代码
  1. <ServerCluster Name="angelServer_Cluster" CloneSeparatorChange="false" LoadBalance="Round Robin"    
  2.         PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60">  
  3.         <Server Name="server1" ConnectTimeout="0" ExtendedHandshake="false"    
  4.             LoadBalanceWeight="1" MaxConnections="-1" WaitForContinue="false">  
  5.             <Transport Hostname="172.22.6.99" Port="9080" Protocol="http"/>  
  6.             <Transport Hostname="172.22.6.99" Port="9443" Protocol="https">  
  7.                 <Property name="keyring" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.kdb"/>  
  8.                 <Property name="stashfile" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.sth"/>  
  9.             </Transport>  
  10.         </Server>  
  11.         <Server Name="server2" ConnectTimeout="0" ExtendedHandshake="false"    
  12.             LoadBalanceWeight="1" MaxConnections="-1" WaitForContinue="false">  
  13.             <Transport Hostname="10.6.36.101" Port="9084" Protocol="http"/>  
  14.             <Transport Hostname="10.6.36.101" Port="9443" Protocol="https">  
  15.                 <Property name="keyring" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.kdb"/>  
  16.                 <Property name="stashfile" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.sth"/>  
  17.             </Transport>  
  18.         </Server>  
  19.     </ServerCluster>  
<ServerCluster Name="angelServer_Cluster" CloneSeparatorChange="false" LoadBalance="Round Robin" 
        PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60">
        <Server Name="server1" ConnectTimeout="0" ExtendedHandshake="false" 
            LoadBalanceWeight="1" MaxConnections="-1" WaitForContinue="false">
            <Transport Hostname="172.22.6.99" Port="9080" Protocol="http"/>
            <Transport Hostname="172.22.6.99" Port="9443" Protocol="https">
                <Property name="keyring" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.kdb"/>
                <Property name="stashfile" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.sth"/>
            </Transport>
        </Server>
        <Server Name="server2" ConnectTimeout="0" ExtendedHandshake="false" 
            LoadBalanceWeight="1" MaxConnections="-1" WaitForContinue="false">
            <Transport Hostname="10.6.36.101" Port="9084" Protocol="http"/>
            <Transport Hostname="10.6.36.101" Port="9443" Protocol="https">
                <Property name="keyring" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.kdb"/>
                <Property name="stashfile" value="D:\Program Files\IBM\WebSpherePlugins/etc/plugin-key.sth"/>
            </Transport>
        </Server>
    </ServerCluster>

   ServerCluster就是定义了一组用于处理(handle)http请求的was服务器清单。下面是它的几个重要属性:
  Name:名字
  LoadBalance:负载均衡算法。默认就是Round Robin (轮叫调度),Round Robin 算法刚开始 随机选择一个server开始,然后循环选择。
  CloneSeparatorChange:使用此属性维护会话亲合关系。服务器的克隆标识被附加到用冒号分隔的会话标识中。在一些无线应用协议(WAP)设备中                                     ,不允许有冒号。将此属性设置成“true”,以将克隆分隔符更改为加号(+).  PostSizeLimit:插件尝试将请求发送到应用程序服务器时所允许的请求内容最大字节数。如果接收到大于此大小的请求,则插件不会发送该请求。缺省值为 -1 个字节,表明发布大小没有限制。
 RemoveSpecialHeaders:在将请求转发到应用程序服务器之前,插件将一些特殊的头添加到请求。这些头存储关于应用程序将需要使用的请求的信息。缺省情况下,插件在添加它假定要添加的头前,将从入局请求中除去这些头。
 RetryInterval:一个指定时间长度的整数,这段时间应该是从将服务器标记为当机的时间到插件重试连接的时间。缺省值为 60 秒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值