2011-02-07 6 views
0

ここではシナリオを示します。ロードバランサIPを指し示す複数のドメインを持つ複数の負荷分散サーバーがあります。ウェブサイトはアクセスしたドメインに応じて異なるスキンを表示します(これはうまくいきます)。私はスティッキーセッションを使用してロードバランスとのセッションを保証するために、問題は私が知っている(それほどではない)私は、クッキーのドメインを定義する必要がありますが、我々は複数の可能なドメインを持って..私は、 Webサーバ:我々は複数のドメインを持っているので複数のドメインとのロードバランシングのためのスティッキセッション

RewriteEngine On 
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com] 

、私は、それに対処するだろう、私は、各ドメインとApacheの書き換えルールを追加すると考えていた。このような何か:

RewriteEngine On 
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com] 
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain2.com] 
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain3.com] 
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain4.com] 

しかし、あなたはおそらく持っているように今では分かっているように、スティッキーセッションはdomain1.comの場合にのみ正常に動作します。これはリストの最初のものです。

これに対処する方法はありますか?

編集:私は今、このアプローチしようとしています

:、

RewriteEngine On 
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain1\.com/ [NC] 
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain1.com] [L] 
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain2\.com/ [NC] 
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain2.com] [L] 
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain3\.com/ [NC] 
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain3.com] [L] 

をするが、そのがまったく機能していないが、これらのルールが誤って書かれているか、単に文句を言わない仕事ロジック ?

PS:HTTP_X_FORWARDED_HOSTではなくHTTP_HOSTでも試しましたが、同じ結果が出ました。

+0

本当にスティッキーセッションが必要ですか、サーバー側(データベース/ NFSなど)でセッションを共有しないのはなぜですか? – regilero

+0

私は両方のサーバー上のphp.iniのsession.save_pathをNAS上のいくつかの共有場所に設定しようとしましたが、セッションが一貫していないため、ページを再読み込みするとユーザーがログに記録され、それ以外はphp.iniの設定を除いて行う必要がありますか? – Julien

答えて

1

ので、私は第二のアプローチはよかった...それを動作させることができた、唯一のenv varが良くなかったと私はまた、最後のスラッシュ削除:

RewriteCond %{HTTP:X-Forwarded-Host} ^(www\.)?domain1\.com [NC] 
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com] [L] 
RewriteCond %{HTTP:X-Forwarded-Host} ^(www\.)?domain2\.com [NC] 
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain2.com] [L] 

注uがしたい場合ということをPHP経由のアクセス、そのドメインにその:

$_SERVER['HTTP_X_FORWARDED_HOST'] 

はたぶん、これは他の誰かにいくつかの時間を節約します;)返信用

感謝!

+0

ありがとう! %{HTTP:X-Forwarded-Host}を%{HTTP_X_FORWARDED_HOST}の代わりに.htaccessまたはApache confで使用する必要があることを発見するのに役立ちました – Zac

+0

私は助けてくれると嬉しいです:) – Julien

関連する問題