3

次のセットアップを機能させようとしています。

OS: Ubuntu 14.04.3 LTS Apache2: Apache/2.4.7 (Ubuntu) mod_cluster 1.3.1 wildfly: wildfly-10.0.0.CR2 ドメイン モード (main-server-group の server-one と other-server の server-two -同じubuntuサーバー上のグループ)テスト展開:cluster-demo

2 週間後、mod_cluster が動作する apache を使用しましたが、wildfly が期待どおりに動作しません。

私のApache設定:

サイト対応/wildfly.conf

Listen 80

<VirtualHost *:80>
    ServerAdmin info@domain.de
    ServerName myserver.com
    ServerAlias www.myserver.com

    ProxyPass / balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On
    ProxyPassReverse / balancer://mycluster
    ProxyPreserveHost On

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

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

サイト有効/000-default.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ProxyPass / ajp://host:8009/
    ProxyPassReverse / ajp://host:8009/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

mods-enabled/mod_cluster.conf

CreateBalancers 1

<IfModule manager_module>
    Listen host:10001

      ManagerBalancerName myclustern

    <VirtualHost host:10001>
        KeepAliveTimeout 300
        MaxKeepAliveRequests 0
        AdvertiseFrequency 5
        ServerAdvertise On http://host:10001
        EnableMCPMReceive
        AdvertiseGroup 224.0.1.105:23364

        <Location />
          Order deny,allow
          Deny from all
          Allow from all
          Require all granted
        </Location>

        <Location /mod_cluster-manager>
           SetHandler mod_cluster-manager
           Order deny,allow
           Deny from all
           Allow from all
        </Location>
    </VirtualHost>
</IfModule>

mods-enabled/mod_cluster.load

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

mod_cluster-manager が利用可能で、cluster-demo のデモ ページも利用可能です。しかし、Apache エラー ログには次のエラーが表示されます。

[Mon Oct 19 21:18:34.798472 2015] [proxy:error] [pid 30588:tid 139836923037440] (111)Connection refused: AH00957: ajp: attempt to connect to host:27233 (host) failed
[Mon Oct 19 21:18:34.798523 2015] [proxy:error] [pid 30588:tid 139836923037440] AH00959: ap_proxy_connect_backend disabling worker for (host) for 60s
[Mon Oct 19 21:18:44.799481 2015] [proxy:error] [pid 30588:tid 139836902057728] AH00940: ajp: disabled connection for (host)
[Mon Oct 19 21:18:54.800456 2015] [proxy:error] [pid 30588:tid 139836881078016] AH00940: ajp: disabled connection for (host)
[Mon Oct 19 21:19:04.801415 2015] [proxy:error] [pid 30588:tid 139836870588160] AH00940: ajp: disabled connection for (host)
[Mon Oct 19 21:19:14.802499 2015] [proxy:error] [pid 30589:tid 139836755199744] AH00940: ajp: disabled connection for (host)
[Mon Oct 19 21:19:24.803463 2015] [proxy:error] [pid 30589:tid 139836744709888] AH00940: ajp: disabled connection for (host)
[Mon Oct 19 21:19:34.804541 2015] [proxy:error] [pid 30588:tid 139836849608448] (111)Connection refused: AH00957: ajp: attempt to connect to host:27233 (host) failed
[Mon Oct 19 21:19:34.804602 2015] [proxy:error] [pid 30588:tid 139836849608448] AH00959: ap_proxy_connect_backend disabling worker for (host) for 60s
[Mon Oct 19 21:19:44.805589 2015] [proxy:error] [pid 30589:tid 139837055608576] AH00940: ajp: disabled connection for (host)
[Mon Oct 19 21:19:54.806578 2015] [proxy:error] [pid 30589:tid 139837045118720] AH00940: ajp: disabled connection for (host)

main-server-group から server-1 を停止すると、server-two は次のように言いました。

(Incoming-2,ee,master:server-two) ISPN000094: チャネル Web の新しいクラスター ビューを受信しました: [master:server-two|12] (1) [master:server-two]

しかし、ブラウザーではクラスターデモページの代わりに取得します:

Service unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

私の wildfly domain.xml 構成は、これらの 2 つのチャンチを除いて、サーバーからの標準構成です。

    <socket-binding-groups>
    <socket-binding-group name="full-ha-sockets" default-interface="public">
        ...
        <outbound-socket-binding name="mc-prox1">
            <remote-destination host="host" port="10001"/>
        </outbound-socket-binding>
    </socket-binding-group>
</socket-binding-groups>

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

Apache には 000-default.conf が必要ですか? proxypass および proxypassreverse アノテーションを削除すると、デモ ページにアクセスできなくなります。Apache を実行するために、wildfly でプロキシ アノテーションが必要なのはなぜですか? 広告モジュールに何か問題がありますか?

誰かが私を助けてくれることを願っています。

4

4 に答える 4

1

modクラスターがポート27233にpingを実行できない場合の解決策を探してここに来ました。前の週に、最初にhttpd 2.4でwi​​ldflysのクラスターをセットアップしようとしていました。および mod cluster 1.3.1 は機能しなかったため、httpd 2.2 および modcluster 1.2.6 で試しました。それは私のために働いた。それは重要だったので、私は正しい構成を持っていることを知っています. 今、私は戻ってきて、modcluster 1.3.1 でセットアップしようとしていますが、そのポートに何かがあると信じています。そのポートは開いていないので、確実にpingできません。

新しい mod_cluster にはバグがあると思います。古いコンポーネントを使用してみてください。うまく機能します。

于 2015-11-05T13:23:48.060 に答える
0

apache errorLog で 27233 ポート エラーが発生した場合、システムは modcluster 1.3.1 のバイナリ .so ファイルと互換性がありません。

この場合、システムに対してソースからmod クラスターをビルドする必要があります。

私たちのためにうまくいった

于 2016-09-20T07:20:12.400 に答える
0

あなたのProxyPass設定は不要です。それらをすべて構成から削除してください。バニラの mod_cluster 構成は、シナリオには十分です。追加の ProxyPass 設定が必要な唯一の状況は、プロキシ バランサーを調整する必要がある場合です。たとえば、バラクナー自体から静的コンテンツを提供し、特定の URL パスのみを転送するように Apache を作成します。

さらに、次のことを確認する必要があります。

  1. Apache HTTP Server インスタンスとすべてのワーカーの両方が、localhost 以外の IP アドレスにバインドされている
  2. Apache HTTP Server は、バランサーに報告されたそれぞれの IP アドレス:ポートですべてのワーカーに到達できます。あなたのセットアップではそうではないことはほぼ確実です。したがって、別のワーカー ノードへのフェイルオーバーは機能しません。
  3. 最後instance-idに、Undertow サブシステム要素の属性を設定します。ワーカーごとに異なるもの。バラクナーがワーカーの名前がわからない場合、間違ったワーカーに連絡しようとする可能性があります。

それが役に立ったかどうかを教えてください。

于 2015-11-03T12:14:13.003 に答える