2015-10-20 47 views
0

我想設置一個具有2個節點的獨立Wildfly集羣。爲此我設置了2個fedora22虛擬機。在兩個節點上,我都安裝了Wildfly 9.0.0.Final並使用standalone-ha.xml配置文件運行它。在第一個節點上,我還安裝了httpd 2.4和mod_cluster 1.3.1。當前設置如下。 在這兩臺機器上,我禁用了防火牆和SELinux。具有httpd2.4的wildfly 9.0獨立羣集。和mod_cluster1.3.1

Node1上配置(192.168.2.240)

mod_cluster.conf

LoadModule cluster_slotmem_module  modules/mod_cluster_slotmem.so 
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so 
LoadModule advertise_module  modules/mod_advertise.so 
LoadModule manager_module  modules/mod_manager.so 
CreateBalancers 1 
<IfModule manager_module> 
Listen 192.168.2.240:6666 
ManagerBalancerName mycluster 
<VirtualHost 192.168.2.240:6666> 
    KeepAliveTimeout 300 
    MaxKeepAliveRequests 0 
    AdvertiseFrequency 5 
    ServerAdvertise On 
    EnableMCPMReceive 
    <Location /> 
    Require all granted 
    </Location> 
    <Location /mod_cluster_manager> 
    SetHandler mod_cluster-manager 
    Require all granted 
    </Location> 
</VirtualHost> 

的httpd.conf

ServerRoot的 「的/ etc/httpd」 字樣

聽80 包括conf.modules.d/*。CONF 用戶阿帕奇 集團阿帕奇 的ServerAdmin根@本地

<Directory /> 
    AllowOverride none 
    Require all denied 
</Directory> 

DocumentRoot "/var/www/html" 
<Directory "/var/www"> 
    AllowOverride None 
    Require all granted 
</Directory> 

<Directory "/var/www/html"> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
</Directory> 

<IfModule dir_module> 
    DirectoryIndex index.html 
</IfModule> 

<Files ".ht*"> 
    Require all denied 
</Files> 

ErrorLog "logs/error_log" 
LogLevel debug 

<IfModule log_config_module> 
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
    LogFormat "%h %l %u %t \"%r\" %>s %b" common 
    <IfModule logio_module> 
     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 
    </IfModule> 
    CustomLog "logs/access_log" combined 
</IfModule> 

<IfModule alias_module> 
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 
</IfModule> 

<Directory "/var/www/cgi-bin"> 
    AllowOverride None 
    Options None 
    Require all granted 
</Directory> 

<IfModule mime_module>  
    TypesConfig /etc/mime.types 
    AddType application/x-compress .Z 
    AddType application/x-gzip .gz .tgz 
    AddType text/html .shtml 
    AddOutputFilter INCLUDES .shtml 
</IfModule> 

AddDefaultCharset UTF-8 

<IfModule mime_magic_module> 
    MIMEMagicFile conf/magic 
</IfModule> 

EnableSendfile on 

#Includes mod_cluster.conf 
IncludeOptional conf.d/*.conf 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ProxyPass/balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On 
    ProxyPassReverse/balancer://mycluster 
    <Location /> 
     Require all granted 
    </location> 
</VirtualHost> 

獨立-ha.xml(我只粘貼重要組成部分)

<?xml version='1.0' encoding='UTF-8'?> 
<server name="node1" xmlns="urn:jboss:domain:3.0"> 

     <subsystem xmlns="urn:jboss:domain:modcluster:2.0"> 
      <mod-cluster-config advertise-socket="modcluster" connector="ajp"> 
       <dynamic-load-provider> 
        <load-metric type="cpu"/> 
       </dynamic-load-provider> 
      </mod-cluster-config> 
     </subsystem> 

     <subsystem xmlns="urn:jboss:domain:undertow:2.0"> 
      <buffer-cache name="default"/> 
      <server name="default-server"> 
       <ajp-listener name="ajp" socket-binding="ajp"/> 
       <http-listener name="default" socket-binding="http" redirect-socket="https"/> 
       <host name="cloudflow" alias="localhost"> 
        <location name="/" handler="welcome-content"/> 
        <filter-ref name="server-header"/> 
        <filter-ref name="x-powered-by-header"/> 
       </host> 
      </server> 
      <servlet-container name="default"> 
       <jsp-config/> 
       <websockets/> 
      </servlet-container> 
      <handlers> 
       <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> 
      </handlers> 
      <filters> 
       <response-header name="server-header" header-name="Server" header-value="WildFly/9"/> 
       <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/> 
      </filters> 
     </subsystem> 

    <interfaces> 
     <interface name="management"> 
      <inet-address value="${jboss.bind.address.management:192.168.2.240}"/> 
     </interface> 
     <interface name="public"> 
      <inet-address value="${jboss.bind.address:192.168.2.240}"/> 
     </interface> 
     <interface name="unsecure"> 
      <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> 
     </interface> 
    </interfaces> 

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> 
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> 
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> 
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> 
    <socket-binding name="http" port="${jboss.http.port:8080}"/> 
    <socket-binding name="https" port="${jboss.https.port:8443}"/> 
    <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> 
    <socket-binding name="jgroups-tcp" port="7600"/> 
    <socket-binding name="jgroups-tcp-fd" port="57600"/> 
    <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/> 
    <socket-binding name="jgroups-udp-fd" port="54200"/> 
    <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> 
    <socket-binding name="txn-recovery-environment" port="4712"/> 
    <socket-binding name="txn-status-manager" port="4713"/> 
    <outbound-socket-binding name="mail-smtp"> 
     <remote-destination host="localhost" port="25"/> 
    </outbound-socket-binding> 
</socket-binding-group> 

節點2配置(192.168.2.226)

<?xml version='1.0' encoding='UTF-8'?> 

<server name="node2" xmlns="urn:jboss:domain:3.0"> 
    <subsystem xmlns="urn:jboss:domain:modcluster:2.0"> 
     <mod-cluster-config advertise-socket="modcluster" connector="ajp"> 
      <dynamic-load-provider> 
       <load-metric type="cpu"/> 
      </dynamic-load-provider> 
     </mod-cluster-config> 
    </subsystem> 

    <subsystem xmlns="urn:jboss:domain:undertow:2.0"> 
     <buffer-cache name="default"/> 
     <server name="default-server"> 
      <ajp-listener name="ajp" socket-binding="ajp"/> 
      <http-listener name="default" socket-binding="http" redirect-socket="https"/> 
      <host name="cloudflow" alias="localhost"> 
       <location name="/" handler="welcome-content"/> 
       <filter-ref name="server-header"/> 
       <filter-ref name="x-powered-by-header"/> 
      </host> 
     </server> 
     <servlet-container name="default"> 
      <jsp-config/> 
      <websockets/> 
     </servlet-container> 
     <handlers> 
      <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> 
     </handlers> 
     <filters> 
      <response-header name="server-header" header-name="Server" header-value="WildFly/9"/> 
      <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/> 
     </filters> 
    </subsystem> 


<interfaces> 
    <interface name="management"> 
     <inet-address value="${jboss.bind.address.management:192.168.2.226}"/> 
    </interface> 
    <interface name="public"> 
     <inet-address value="${jboss.bind.address:192.168.2.226}"/> 
    </interface> 
    <interface name="unsecure"> 
     <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> 
    </interface> 
</interfaces> 

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> 
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> 
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> 
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> 
    <socket-binding name="http" port="${jboss.http.port:8080}"/> 
    <socket-binding name="https" port="${jboss.https.port:8443}"/> 
    <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> 
    <socket-binding name="jgroups-tcp" port="7600"/> 
    <socket-binding name="jgroups-tcp-fd" port="57600"/> 
    <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/> 
    <socket-binding name="jgroups-udp-fd" port="54200"/> 
    <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> 
    <socket-binding name="txn-recovery-environment" port="4712"/> 
    <socket-binding name="txn-status-manager" port="4713"/> 
    <outbound-socket-binding name="mail-smtp"> 
     <remote-destination host="localhost" port="25"/> 
    </outbound-socket-binding> 
</socket-binding-group> 

我的應用程序設置

的pom.xml

<contextRoot>/</contextRoot> 

的jboss-web.xml中

<jboss-web> 
    <context-root>/</context-root> 
    <virtual-host>cloudflow</virtual-host> 
</jboss-web> 

的jboss-web.xml中

<distributable /> 

我開始的httpd與systemctl start httpd,然後我./standalone.sh -c standalone-ha.xml Wildfly運行。 服務器啓動時沒有錯誤並部署應用程序。我可以看到我在localhost兩個節點上的應用:8080

在192.168.2.240:6666/mod_cluster_manager我可以看到以下畫面:

screenshot

當我想我的應用程序在瀏覽器的地址http://192.168.2.240/但我得到503服務不可用,當我重新啓動httpd和404頁 - 沒有發現幾秒鐘的信。 在http://192.168.2.240:6666/我得到了fedora測試頁面。 httpd的Error log不顯示任何錯誤只調試消息。

我想我的配置在我的應用程序部署的問題。

+0

不會修改如果你部署你的應用程序,因爲它具有上下文''/ cloudflow'''(沒有vhost config)而不是'''/'''?這可能是MC中的一個錯誤。要嘗試重現。 –

+0

沒有任何幫助,所以我改變了httpd 2.2。和mod_cluster到1.2.6,它工作正常。我認爲最新的modcluster或httpd有bug。 Httpd試圖ping端口27233甚至沒有打開 –

+0

謝謝Domen挖掘它。我將剖析最新的mod_cluster並回復給你。 –

回答

1

問題是在命令:ServerAdvertise在我把它改爲:ServerAdvertise在IP:6666

我也是在httpd.conf delelted整個虛擬主機部分的端口80之後,它的工作