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.com ou myapplication.com

  • URLs dos Slaves:

    • srv0.myapplication.com

    • srv1.myapplication.com

    • slavex.myapplication.com

    • app2.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.com

  • myslave1.com

Parâmetro de configuração

  • Para habilitar cookies para todo o domínio no cluster, defina o parâmetro de configuração domain_cookies para 1 no 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_cookies no 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ÍNIO correto aos cookies quando eles são definidos.

circle-exclamation
circle-info

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.