使用mod_cluster连接apache和Widfly

时间:2017-04-13 08:41:57

标签: wildfly wildfly-9 mod-cluster

我正在尝试将mod_cluster设置为Wildfly 9的反向代理。当我使用http作为协议(在mod_cluster和Wildfly之间)时,一切正常(将请求转发到应用服务器并检测服务器)。

当我尝试使用ajp作为协议连接mod_cluster和wildfly时,我的问题出现了。我检查了mod_cluster-manager,似乎就是这样 mod_cluster连接到wildfly,但它无法转发 请求应用程序服务器。

我有以下配置:

  • http服务器:Apache / 2.4.18(Ubuntu)
  • 应用程序服务器: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配置(相关片段):

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时,它可以工作。我想使用自定义端口号。 有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

原来我的错误二进制文件:/。在用官方网站上的替换后,我设法通过AJP将Wildfly与apache连接起来。

相关问题