2017-02-09 21 views
0

一時的なアップストリームサーバーを数ヶ月使用して永続的なセットに置き換えるバランサを実装する必要があるApache構成があります。インストール時に両方の構成を提供できるようにするアプローチを設計しようとしており、後でそれらをプログラムで簡単に切り替えることができます。これは、すべてがユニークな構成を持つ約40台のサーバーで実行する必要があります。Apacheプロキシバランサ定義の削除/削除/定義解除

私は今のところ...

を試してみた私はhttpd.confファイルに次のコードを追加しました:その後、

<proxy balancer://upstream> 
    balancermember http://permanentserver1:80 
    balancermember http://permanentserver2:80 status=+H 
    balancermember http://permanentserver3:80 status=+H 
</proxy> 
include conf\temp_upstream.conf 

..and temp_upstream.confファイル内に、私がしようバランサの定義を上書きする

<proxy balancer://upstream>> 
    balancermember http://temporaryserver1:80 
    balancermember http://temporaryserver2:80 status=+H 
    balancermember http://temporaryserver3:80 status=+H 
</proxy> 

...しかし、動作していないようです。 2番目のバランサの定義は無視されているように見えますが(マージされるかもしれませんが、わかりません)

私がこのアプローチを使用しているのは、切り替えを実行してからApacheを再起動するときにtemp_upstream.confファイルを空のファイルに置き換えることができるからです。

この設定を行う方法はありますか?スクリプト内で前に定義されたバランサを定義解除/削除して、2番目の定義を受け入れる方法はありますか? (私は、起動ラインに変数を渡して、条件付きで適切な定義を処理するためにIfDefineを使用することができることを知っています)。

+0

ステータスを無効にして追加するだけではどうですか?必要なときにIncludeとコメントを付けてコメントを外して両方の部分を持つことができますか?同じ名前のバランサー2人を論理的に持ち、問題をもたらすでしょう。また、これは '' balancer:// "' // –

答えて

0

私は最近来ました私の問題の完璧な解決策です。

2つの定義がメモリー内でマージされ、1つの大きな定義が作成されていることが確認されました。

temp_upstream.confファイルの一時構成内の各BalancerMember定義に "lbset = 0"(デフォルト)を追加することで、まったく同じように動作させることができました。 "lbset = 0" httpd.confの永続的な設定のBalancerMember定義。 lbset = 1定義は、すべてのlbset = 0定義が失敗した後にのみ使用されます。

関連する問題