Подключение apache и Widfly с помощью mod_cluster

Я пытаюсь настроить mod_cluster в качестве обратного прокси-сервера для Wildfly 9. Когда я использую http в качестве протокола (между mod_cluster и Wildfly), все работает нормально (пересылка запросов на сервер приложений и сервер обнаружения).

Мои проблемы возникают, когда я пытаюсь связать mod_cluster и wildfly, используя ajp в качестве протокола. Я проверил mod_cluster-manager, и оказалось, что mod_cluster подключен к wildfly, но не может пересылать запросы на сервер приложений.

У меня следующая конфигурация:

  • http-сервер: Apache/2.4.18 (Ubuntu)
  • сервер приложений: Wildfly 9.0.2
  • мод_кластер: 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 (соответствующие фрагменты):

подсистема 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>

привязка исходящего сокета:

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

[РЕДАКТИРОВАТЬ]

Я должен был включить конфигурацию 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]

Когда я устанавливаю порт ajp на 8009, он работает. Я хочу использовать пользовательский номер порта. Кто-нибудь знает, как это сделать?


person Ammaro    schedule 13.04.2017    source источник


Ответы (1)


Оказалось, что у меня были неправильные бинарники :/. После замены их на те, что с официального сайта, мне удалось подключить Wildfly к apache через AJP.

person Ammaro    schedule 13.06.2017