2017-01-27 8 views
0

apache Webサーバーがインストールされている環境では、sslとnon-sslポートがそれぞれ8080と4443で待機するように構成されています。リクエストを "https"にロードバランスする必要があり、リクエストが "http"にロードバランスをとらなければならない場合は、入力に基づいてリクエストをロードバランスします。下記の方法を試しましたが、期待どおりに動作していません。助けてもらえますか?Apache Webサーバーロードバランシング

<Proxy balancer://mybalancerhttp> 
      BalancerMember http://localhost1/ 
      BalancerMember http://localhost2/ 
      ProxySet lbmethod=byrequests 
    </Proxy> 

    ProxyPass/"balancer://mybalancerhttp/" 
    ProxyPassReverse/"balancer://mybalancerhttp/" 

    <Proxy balancer://mybalancerhttps> 
      BalancerMember https://localhost1/ 
      BalancerMember https://localhost2/ 
      ProxySet lbmethod=byrequests 
    </Proxy> 

    ProxyPass/"balancer://mybalancerhttps/" 
    ProxyPassReverse/"balancer://mybalancerhttps/" 

おかげ

答えて

0

これらのディレクティブは罰金ですが、あなたはどこのクライアントの要求に基づいて送信することを決定したいと思います。

最も簡単な方法は、これらのプロキシパスセットとバランサ定義をそれぞれ独自の仮想ホストに移動することです。

これは

<VirtualHost *:8080> 
ServerName yourhostname.example.com 
    <Proxy balancer://mybalancerhttp> 
      BalancerMember http://localhost1/ 
      BalancerMember http://localhost2/ 
      ProxySet lbmethod=byrequests 
    </Proxy> 

    ProxyPass/"balancer://mybalancerhttp/" 
    ProxyPassReverse/"balancer://mybalancerhttp/" 
</VirtualHost> 

<VirtualHost *:4443> 
ServerName yourhostname.example.com 
SSLEngine on 
SSLProxyEngine on 
....certs and all needed directives 
<Proxy balancer://mybalancerhttps> 
      BalancerMember https://localhost1/ 
      BalancerMember https://localhost2/ 
      ProxySet lbmethod=byrequests 
    </Proxy> 

    ProxyPass/"balancer://mybalancerhttps/" 
    ProxyPassReverse/"balancer://mybalancerhttps/" 
</VirtualHost> 
+0

感謝です!私も同じように試しました。しかし、期待どおりに動作しません。エラーページが見つかりません。トラフィックを単一のホストにルーティングしようとすると、ロードバランシングの代わりに、以下のように動作します。 ProxyPass/https:// hostname1/ ProxyPassReverse/https:// hostname1/ – user3171821

+0

サーバー名とポートの正しい名前を使用して正しい仮想ホストに着陸すると、私が言った設定が有効になります。 ProxyPassを使用すると、すべてをプロキシ処理しているので、404がバックエンドから来るでしょう。名前を修正し、別の仮想ホストに干渉したり、上陸したりしないようにしてください。ヒント "apachectl -S" –

+0

#hereに出力があります。 #VirtualHost設定: #*:8080はNameVirtualHostです #デフォルトサーバーtest.one.com(/opt/apache/conf/httpd.conf:484) #port 8080 namevhost test.one.com(/ opt/apache/conf/httpd.conf:484) #port 8080 namevhost login.test.one.com(/opt/apache/conf/httpd.conf:510) #*:4443はNameVirtualHostです #デフォルトサーバーテスト。 one.com(/opt/apache/conf/httpd.conf:537) #ポート4443 namevhost test.one.com(/opt/apache/conf/httpd.conf:537) – user3171821

関連する問題