2017-03-15 17 views
0

내 설정은 4 개의 Wildfly 10.1 서버 노드 앞에있는 Apache Httpd 2.4 서버입니다. 로드 밸런싱을 위해 mod_cluster를 사용하고 있으며 대부분 모든 것이 잘 돌아갑니다. 그러나 여러 번 매일이 아파치의 에러 로그에 나타납니다 :Apache mod_cluster는 노드에 대한 연결을 비활성화합니다.

[Wed Mar 15 09:15:18.736665 2017] [proxy:error] [pid 18936:tid 1784] AH00940: http: disabled connection for (10.10.87.53) 
[Wed Mar 15 09:15:59.955515 2017] [proxy:error] [pid 18936:tid 1784] AH00940: http: disabled connection for (10.10.87.52) 

이러한 오류가 표시되면, 사용자는이 시스템의 로그 아웃 불평. 이것은 끈적 세션을 사용하고 오류가 나타날 때 모든 노드가 한 노드에서 다른 노드로 이동하는 것으로 보이기 때문에 발생합니다. 이는 세션이 손실되었음을 의미합니다.

그러나 이러한 오류가 로그에 남아 있더라도 잠시 후 노드를 테스트 할 때 노드는 여전히 활성화되어 작동합니다. 어떤 일이 일어 났는지는 모릅니다. 여기

내 아파치 mod_cluster의 설정입니다 :

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
LoadModule proxy_ajp_module modules/mod_proxy_http.so 
LoadModule cluster_slotmem_module modules/mod_cluster_slotmem.so 
LoadModule manager_module modules/mod_manager.so 
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so 
LoadModule advertise_module modules/mod_advertise.so 

<IfModule manager_module> 
    Listen 10.10.87.50:16666 
    ManagerBalancerName nmcluster 

    <VirtualHost 10.10.87.50:16666> 

     <Location /> 
      Require ip 10.10.87 
     </Location> 

     KeepAliveTimeout 300 
     MaxKeepAliveRequests 0 
     AdvertiseFrequency 5 
     AllowDisplay On 
     AdvertiseGroup 224.0.1.105:23364 
     EnableMCPMReceive 

     <Location /mod_cluster_manager> 
      SetHandler mod_cluster-manager 
      Require ip 10.10.87 
     </Location> 

    </VirtualHost> 
</IfModule> 

그리고 여기 제이보스의 설정입니다 :

<subsystem xmlns="urn:jboss:domain:modcluster:2.0"> 
    <mod-cluster-config advertise-socket="modcluster" proxies="proxy" balancer="nmcluster" connector="default"> 
     <dynamic-load-provider> 
      <load-metric type="cpu"/> 
     </dynamic-load-provider> 
    </mod-cluster-config> 
</subsystem> 
... 
<http-listener name="default" socket-binding="http" redirect-socket="https" proxy-address-forwarding="true" enable-http2="true"/> 
... 
<socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> 

은 어떻게 끈적 세션이 더 끈적 만들 수 있습니까? 아니면 더 나은 방법으로, 오류 발생을 어떻게 막을 수 있습니까?

노드가 다운 된 경우에도 사용자가 다른 노드로 이동하기를 원하지만, 노드가 몇 초 동안 조금 느리기 때문에 발생하지 않기를 바랍니다. 좋은 것보다.

이러한 연결이 끊어지는 이유를 이해하지 못합니다. 모든 이론은 인정 될 것이다.

답변

1

누군가 Apache 서버와 Wildfly 서버가 처리하는 데 10 초 이상 걸리는 대용량 파일을 업로드하면 위의 "연결이 끊어졌습니다"라는 오류가 발생하고 모든 사람이 세션을 잃어 버리고 로그 아웃됩니다.

해결 방법은 Wildfly에서 ping을 10 초 이상으로 설정하는 것입니다. 예를 들어이 같은 ping="60", 경우 : 제이보스는 변화를 다시 시작한 후

<subsystem xmlns="urn:jboss:domain:modcluster:2.0"> 
    <mod-cluster-config advertise-socket="modcluster" proxies="proxy" balancer="nmcluster" connector="default" ping="60"> 
     <dynamic-load-provider> 
      <load-metric type="cpu"/> 
     </dynamic-load-provider> 
    </mod-cluster-config> 
</subsystem> 

는 또한,뿐만 아니라 아파치를 다시 시작하는 것이 매우 중요합니다. Apache를 다시 시작하지 않으면 mod_cluster-manager가 새로운 설정을 알려주지 만 Apache는이 설정을 사용하지 않습니다.