Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IHS插件loadbalancer无法访问远程Websphere应用程序的静态文件_Websphere_Url Routing_Load Balancing_Websphere 7_Ibmhttpserver - Fatal编程技术网

IHS插件loadbalancer无法访问远程Websphere应用程序的静态文件

IHS插件loadbalancer无法访问远程Websphere应用程序的静态文件,websphere,url-routing,load-balancing,websphere-7,ibmhttpserver,Websphere,Url Routing,Load Balancing,Websphere 7,Ibmhttpserver,我们已经设置了一个IHS实例。该实例正在远程计算机中为2个Websphere JVM提供服务(这两个WAS JVM都在同一个远程计算机中)。我们还没有创建任何集群 现在,如果两个JVM都处于loadbalance模式,即具有LoadBalanceWeight!=0,我们无法通过端口80访问具有web url的应用程序静态文件(嵌入网页中的图像)。 在检查html页面上,有多个“加载资源失败:服务器响应状态为404(未找到)”的实例 但是,如果我们在IHS pluginfile中为任何一个JVM设

我们已经设置了一个IHS实例。该实例正在远程计算机中为2个Websphere JVM提供服务(这两个WAS JVM都在同一个远程计算机中)。我们还没有创建任何集群

现在,如果两个JVM都处于loadbalance模式,即具有LoadBalanceWeight!=0,我们无法通过端口80访问具有web url的应用程序静态文件(嵌入网页中的图像)。 在检查html页面上,有多个“加载资源失败:服务器响应状态为404(未找到)”的实例

但是,如果我们在IHS pluginfile中为任何一个JVM设置LoadBalanceWeight=0,我们就能够成功地使用web url访问应用程序静态文件-绝对没有问题。

工作插件-cfg.xml的内容->

<?xml version="1.0" encoding="ISO-8859-1"?>
<Config ASDisableNagle="false" AcceptAllContent="false" AppServerPortPreference="HostHeader" ChunkedResponse="false" FIPSEnable="false" FailoverToNext="false" HTTPMaxHeaders="300" IISDisableNagle="false" IISPluginPriority="High" IgnoreDNSFailures="false" KillWebServerStartUpOnParseErr="false" MarkBusyDown="false" OS400ConvertQueryStringToJobCCSID="false" RefreshInterval="10" ResponseChunkSize="64" SSLConsolidate="true" TrustedProxyEnable="false" VHostMatchingCompat="false">
   <Log LogLevel="Error" Name="c:\IBM\HTTPServer\Plugins\logs\webserver1\http_plugin.log"/>
   <Property Name="ESIEnable" Value="true"/>
   <Property Name="ESIMaxCacheSize" Value="1024"/>
   <Property Name="ESIInvalidationMonitor" Value="false"/>
   <Property Name="ESIEnableToPassCookies" Value="false"/>
   <Property Name="ESICacheidFull" Value="false"/>
   <VirtualHostGroup Name="default_host">
      <VirtualHost Name="*:80"/>
      <VirtualHost Name="*:443"/>
   </VirtualHostGroup>
   <ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true" LoadBalance="Round Robin" Name="sserver1_ASAPD01Node01_Cluster" PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60">
      <Server CloneID=eappsrv3 LoadBalanceWeight=100 ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="ASAPD01Node01_server1" ServerIOTimeout="0" WaitForContinue="false">
         <Transport Hostname=x.x.x.x Port="9082" Protocol="http"/>
         <Transport Hostname=x.x.x.x Port="9445" Protocol="https">
            <Property Name="keyring" Value="c:\IBM\HTTPServer\Plugins\config\webserver1\plugin-key.kdb"/>
            <Property Name="stashfile" Value="c:\IBM\HTTPServer\Plugins\config\webserver1\plugin-key.sth"/>
         </Transport>
      </Server>
      <Server CloneID=eappsrv4 LoadBalanceWeight=0 Name="ASAPD01Node02_server1" WaitForContinue="false" ServerIOTimeout="0" MaxConnections="-1" ExtendedHandshake="false" ConnectTimeout="0">
         <Transport Protocol="http" Port="9084" Hostname=x.x.x.x/>
         <Transport Protocol="https" Port="9447" Hostname=x.x.x.x>
           <Property Name="keyring" Value="c:\IBM\HTTPServer\Plugins\config\webserver1\plugin-key.kdb"/>
           <Property Name="stashfile" Value="c:\IBM\HTTPServer\Plugins\config\webserver1\plugin-key.sth"/>
         </Transport>
      </Server>
   </ServerCluster>
   <UriGroup Name="default_host_server1_ASAPD01Node01_Cluster_URIs">
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hello"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hitcount"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsp"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsv"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsw"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/j_security_check"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm_security_logout"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/servlet/*"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/mno/*"/>
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ivt/*"/>
   </UriGroup>
   <Route ServerCluster="server1_ASAPD01Node01_Cluster" UriGroup="default_host_server1_ASAPD01Node01_Cluster_URIs" VirtualHostGroup="default_host"/>
   <RequestMetrics armEnabled="false" loggingEnabled="false" rmEnabled="false" traceLevel="HOPS">
      <filters enable="false" type="URI">
         <filterValues enable="false" value="/snoop"/>
         <filterValues enable="false" value="/hitcount"/>
      </filters>
      <filters enable="false" type="SOURCE_IP">
         <filterValues enable="false" value="255.255.255.255"/>
         <filterValues enable="false" value="254.254.254.254"/>
      </filters>
      <filters enable="false" type="JMS">
         <filterValues enable="false" value="destination=aaa"/>
      </filters>
      <filters enable="false" type="WEB_SERVICES">
         <filterValues enable="false" value="wsdlPort=aaa:op=bbb:nameSpace=ccc"/>
      </filters>
   </RequestMetrics>
</Config>
注意,对于两个WAS JVM,ibm-web-ext.xmi文件中的“fileServiceEnabled”属性都设置为true


当两个节点都启动时,会产生问题的负载平衡配置缺少什么?

两条插件日志消息表明请求的URI没有映射到plugin-cfg.xml文件中列出的任何内容。您的XML是否包含/images/*的上下文根?您是否手动合并两个生成的plugin-cfg.xml文件?如果是这样,您可能会遗漏信息

当插件无法映射请求时,它会将请求返回给web服务器进行处理,在您的情况下,这会导致404响应


如果没有完整的插件跟踪以及工作和非工作实例的相关XML,就很难给出明确的答案。

问题最终得到了解决。我怀疑这是由于会话处理中的问题

而不是下面

<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/mno/*"/>

我在WAS控制台会话管理中为两个节点设置了单独的关联cookie,并将更新的插件文件设置为

<Uri AffinityCookie="App1" AffinityURLIdentifier="jsessionid" Name="/mno/*"/>
<Uri AffinityCookie="App2" AffinityURLIdentifier="jsessionid" Name="/mno/*"/>

在重新加载页面时,静态图像就会出现


然而,现在团队在PPR-方面面临一些问题;“部分页面重新加载”应用程序开发团队正在检查的异常

能否详细说明“未添加上下文根”?通常没有这样的步骤。链接应该是相对的或包含上下文根。当您检查HTML页面的元素时,它会显示类似“加载资源失败:服务器以404(未找到)的状态响应”的消息http:///css/bootstrap.css" . 我的代码开发人员说,资源的路径没有正确形成,可能是上下文根没有附加的问题。但奇怪的是,当我们停止其中一个WAS节点时,web url工作正常,所有静态资源都被加载!!问题只出现在两个WAS节点都启动时。我用插件日志片段编辑了我的问题。您是否明确地进行重写以隐藏您的上下文根?什么是断章取义的HTML链接?嗨,科文纳,我们没有做任何显式重写。更新了我更新了Pluginfle的内容Hi Hill,我在插件日志中更新了Pluginfile内容和异常。我的理解是,加载静态文件存在问题,不管WAS节点的状态如何,都应该加载静态文件。但奇怪的是,当两个节点都处于上升状态时,一个节点处于关闭状态而不工作。在您询问的内容和显示的内容之间存在断开连接。不管LoadBalanceWeight如何,只要给定XML中的URI列表,就不可能从WebSphere提供/css/docs.min.css。插件的首要职责是确定传入请求是否应由WebSphere处理。示例日志显示它无法找到与请求匹配的URI。LoadBalanceWeight在确定请求应该向前移动到WebSphere并决定哪个服务器应该处理该请求后发挥作用。我建议您与IBM建立PMR。
<Uri AffinityCookie="App1" AffinityURLIdentifier="jsessionid" Name="/mno/*"/>
<Uri AffinityCookie="App2" AffinityURLIdentifier="jsessionid" Name="/mno/*"/>