2017-04-13 6 views
1

J'essaie de configurer mod_cluster en tant que proxy inverse pour Wildfly 9. Quand j'utilise http comme protocole (entre mod_cluster et Wildfly), tout fonctionne très bien (transfert des requêtes au serveur d'applications et détection du serveur). Mes problèmes surviennent lorsque j'essaie de câbler mod_cluster et wildfly en utilisant ajp comme protocole. J'ai vérifié mod_cluster-manager et il semblait que mod_cluster était connecté à wildfly, mais il ne pouvait pas transmettre requêtes au serveur d'applications.Connexion d'apache et Widfly en utilisant mod_cluster

I ont la configuration suivante:

  • serveur http: Apache/4.2.18 (Ubuntu)
  • serveur d'applications: wildfly 9.0.2
  • mod_cluster: 1,3

mod_cluster .conf

PersistSlots on 
CreateBalancers 1 
MemManagerFile /opt/mod_cluster/logs 


EnableOptions 
AllowDisplay On 
AllowCmd On 
WaitForRemove 1 



UseAlias 1 
ServerAdvertise Off 

Listen *:5555 
<VirtualHost *:5555> 
    <Directory /> 
     Order deny,allow 
     Allow from 192.168.0.71 
     Allow from 192.168.0.71 
     Allow from 127 
     Require all granted 
    </Directory> 
    <Location /mcm> 
     SetHandler mod_cluster-manager 
     Allow from 192.168 
     Allow from all 
    </Location> 
    KeepAliveTimeout 300 
    MaxKeepAliveRequests 0 
    ManagerBalancerName mycluster 
    #AdvertiseFrequency 5 
    EnableMCPMReceive 

</VirtualHost> 



<VirtualHost *:80> 

    ServerName my-app.org 
    ServerAlias my-app.org 
    ErrorLog /var/log/apache2/user.error.log 
    LogLevel warn 
    CustomLog /var/log/apache2/my_app.access.log combined 
    ServerSignature On 

    Redirect "/" https://my-app.org 
    ProxyPreserveHost On 
    SSLProxyEngine On 
    ProxyPreserveHost On 
    #ProxyPass /_error ! 
    #ProxyPass/balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=on 
    #ProxyPassReverse/balancer://mycluster 


    <Location /> 
     Order deny,allow 
     Allow from all 
    </Location> 

</VirtualHost> 

<VirtualHost *:443> 

    ServerName my-app.org 
    ServerAlias my-app.org 
    SSLEngine on 
    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem 
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key 
    ErrorLog /var/log/apache2/user.ssl.error.log 
    LogLevel warn 
    CustomLog /var/log/apache2/my_app.ssl.access.log combined 
    ServerSignature On 

    SSLProxyEngine On 
    ProxyPreserveHost On 
    ProxyPass /_error ! 
    ProxyPass/balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=on 
    ProxyPassReverse/balancer://mycluster 
    <Location /> 
     Order deny,allow 
     Allow from all 
    </Location> 
</VirtualHost> 

wildfly Configuration (fragments pertinents):

sous-système de mod_cluster:

<subsystem xmlns="urn:jboss:domain:modcluster:2.0"> 
     <mod-cluster-config advertise-socket="modcluster" 
          proxies="mc-prox1" 
          advertise="false" 
          sticky-session-force="true" load-balancing-group="mycluster" connector="ajp"> 
      <dynamic-load-provider> 
       <load-metric type="cpu"/> 
      </dynamic-load-provider> 
     </mod-cluster-config> 
    </subsystem> 

-douille de liaison sortante:

<outbound-socket-binding name="mc-prox1"> 
     <remote-destination host="192.168.0.71" port="5555"/> 
    </outbound-socket-binding> 

[EDIT]

j'ai inclus configuration AJP:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:1500}"> 
    <socket-binding name="ajp" port="${jboss.ajp.port:0}" /> 
....... 
</socket-binding-group> 

[EDIT2]

Lorsque je définis le port ajp sur 8009, cela fonctionne. Je veux utiliser le numéro de port personnalisé. Est-ce que quelqu'un a une idée de comment le faire?

Répondre

0

Il s'est avéré que j'avais les mauvais binaires: /. Après les avoir remplacés par ceux du site officiel, j'ai réussi à connecter Wildfly avec Apache via AJP.