так вот сценарий, у меня есть несколько серверов с балансировкой нагрузки, с кучей доменов, указывающих на IP балансировщика нагрузки.Веб-сайт показывает другой скин в зависимости от домена, с которого он был получен (это работает нормально).Чтобы обеспечить сеанс с балансировкой нагрузки, я использовал липкий сеанс, проблема в том, что я знаю (что немного), мне нужно определить домен для cookie, но у нас есть несколько возможных доменов. Я определяю cookie следующим образом для каждоговеб-сервер:
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_HOST вместо HTTP_X_FORWARDED_HOST, но результат тот же.