Gerenciando Cookies em um Cluster
Em um cluster multi-servidor existe a possibilidade de diferentes URLs serem usadas para acessar a mesma aplicação web. Por exemplo, se você hospeda múltiplas aplicações você pode expor a mesma app usando endereços diferentes:
stock.myapplication.com
myapplication.com/stock
No Mode-2 cada slave usa URLs diferentes e as sessões são redirecionadas para essas URLs. Ao contrário do Mode-0, onde há apenas uma URL de entrada para o sistema, no Mode-2 pode haver múltiplas URLs. Isso cria um problema quando sua aplicação usa cookies para gerenciar sessões: cookies são limitados a domínios e URLs, então cookies salvos para www.domain1.com não são visíveis a partir de www.domain2.com.
Solução: use o mesmo domínio web para o master e todos os seus slaves
Atribua URLs de subdomínio do seu domínio principal aos seus slaves para que todos os Nodes compartilhem um domínio comum.
Domínio de exemplo:
myapplication.com
Configuração válida para compartilhamento de cookies:
URL do servidor Master:
www.myapplication.comoumyapplication.com
URLs dos Slaves:
srv0.myapplication.comsrv1.myapplication.comslavex.myapplication.comapp2.myapplication.com
Se alguns dos seus slaves estiverem em domínios de nível superior diferentes, eles não poderão acessar cookies em comum. Exemplo de slaves não compatíveis:
myslave0.commyslave1.com
Parâmetro de configuração
Para habilitar cookies para todo o domínio no cluster, defina o parâmetro de configuração
domain_cookiespara1no arquivo CFG relacionado.Este parâmetro está desativado por padrão para manter compatibilidade com versões anteriores.
Se o seu cluster for uma instância Standalone Server HyperServer, defina
domain_cookiesno arquivo CFG desse servidor.Em uma fazenda multi-servidor, é suficiente habilitar o parâmetro apenas no servidor master; o master propagará automaticamente essa configuração para todos os servidores slave.
Quando ativado, uniGUI adiciona automaticamente o
DOMÍNIOcorreto aos cookies quando eles são definidos.
Importante: Após habilitar este recurso em um cluster multi-servidor, os cookies estarão disponíveis para todos os subdomínios do cluster. Isso pode ser um problema para clusters com múltiplas aplicações porque todos os cookies serão visíveis a todas as aplicações.
Se você quiser que os cookies sejam privados para uma aplicação específica, use nomes de cookie distintos por aplicação para evitar que uma aplicação sobrescreva os cookies de outra.
Por outro lado, este recurso pode ser usado intencionalmente para compartilhar cookies (por exemplo, informações de login compartilhadas) entre múltiplas aplicações.
Observação: A partir do build 1559 você pode habilitar este recurso definindo domain_cookies=1. Isso requer compilar todos os Nodes também com o build 1559. Quando ativado, todos os Nodes independentemente do modo de cluster fornecem um DOMÍNIO parâmetro ao configurar cookies.