Configurando Server Farm no Modo-2 (Redirecionamento de URL)

O primeiro passo é construir uma fazenda de servidores no Modo-0. Uma fazenda de servidores em Mode-2 também deve ser capaz de operar no Modo-0, então construa e teste seu cluster seguindo as instruções aqui: https://unigui.com/doc/online_help/setting-up-a-hyperserver-serve.htm

Depois de ter uma fazenda de servidores Mode-0 funcionando, você pode prosseguir para modificar seu cluster para operar em Mode-2. Você pode misturar ServerNodes com modos diferentes (alguns ServerNodes podem ser Mode-0 enquanto outros executam em Mode-2).

Abra o arquivo de configuração (CFG) do seu master HyperServer e localize a seção onde seu ServerNode está configurado, por exemplo:

Exemplo de CFG (seção server-0)
[server-0]

enabled=1

url=http://localhost/webapp/server-0/hyper.dll

name=ServerNode-0

token=favwe314324324175924563

global_url=

cluster_mode=2

avoid_direct_access=1

url_timeout_secs=300

error_redirect_master=0

Os parâmetros abaixo têm significado apenas no modo de cluster Mode-2. Eles não têm efeito no Mode-0.

global_url

Esta URL será usada para acessar publicamente o ServerNode relacionado. Atribua este parâmetro apenas se a URL pública do seu ServerNode for diferente da url parâmetro.

Normalmente, o master HyperServer usa o url parâmetro para enviar comandos de controle e obter o status do ServerNode. Esta URL pode ser a mesma URL usada para acesso público.

Por algumas razões você pode querer usar uma URL privada para url e uma URL pública para global_url.

Observação importante: o url parâmetro deve ser uma URL completa, não uma URL traduzida, reescrita ou redirecionada. Por exemplo, se a URL completa para o seu ServerNode for: https://srv1.mydomain.com/myisapi/myapp.dll e você a simplificou para https://srv1.mydomain.com usando reescrita de URL, então o url parâmetro deve ser a URL completa para o seu ServerNode:

url=https://srv1.mydomain.com/myisapi/myapp.dll

Para global_url você pode usar a URL simplificada:

global_url=https://srv1.mydomain.com

Exemplo:

Se você usar a mesma URL para ambos, atribua apenas url e deixe global_url vazio.

cluster_mode

Defina o modo de cluster para este ServerNode. Para Mode-2, defina:

O valor padrão é 0.

avoid_direct_access

Controle o acesso direto aos ServerNodes. Veja a seção Isolating ServerNodes in Mode-2: https://unigui.com/doc/online_help/isolating-servernodes-in-mode-.htm

O valor padrão é 0. Em produção você provavelmente definirá como 1 para proibir o acesso direto:

url_timeout_secs

Este parâmetro funciona com avoid_direct_access. Quando avoid_direct_access está habilitado, url_timeout_secs determina por quanto tempo uma URL gerada permanece ativa. O padrão é 300 segundos (5 minutos).

Exemplo:

Observação: É necessário reiniciar o cluster após alterar os modos. No mínimo reinicie o master HyperServer e quaisquer ServerNodes cujo modo você tenha alterado.

error_redirect_master

Quando uma URL expirada é referenciada, o servidor gera uma exceção e nenhuma sessão é criada. Em vez de mostrar um erro, você pode redirecionar a solicitação para o servidor master definindo:

Esta opção é efetiva somente quando avoid_direct_access está habilitado. O padrão é 0 (desabilitado).

Observação: Esse recurso funciona apenas quando a URL de redirecionamento está intacta. Uma URL de redirecionamento completa se parece com isto (gerada automaticamente pelo servidor master):

http://app1.mydomain.com/webapp/server-0/hyper.dll?rdrprm=89957281F52B8BDB27B39DB51793D5DC&rfr=aHR0cDovL2xvY2FsaG9zdC93ZWJhcHAvaHlwZXIuZGxs

Se a URL for modificada ou parâmetros estiverem faltando, um erro será gerado e nenhum redirecionamento para o master ocorrerá.

Dica importante: Quando error_redirect_master está habilitado, certifique-se de que os relógios do sistema dos seus servidores estejam sincronizados. Se o master e um slave diferirem por mais de url_timeout_secs, a URL gerada pelo master pode ser vista como expirada e rejeitada pelo slave, possivelmente causando um loop de redirecionamento indefinido. Em configurações com vários servidores, garanta que a diferença de tempo entre o master e qualquer slave não seja maior que url_timeout_secs, ou aumente url_timeout_secs apropriadamente.

Etapas para converter um ServerNode para Mode-2

1

Prepare um cluster Mode-0

Construa e teste seu cluster em Mode-0 primeiro (veja: https://unigui.com/doc/online_help/setting-up-a-hyperserver-serve.htm).

2

Edite o CFG do master HyperServer

Abra o arquivo CFG do master HyperServer e encontre a seção do ServerNode (veja o exemplo acima).

3

Defina Mode-2 e os parâmetros relacionados

Defina cluster_mode=2 e configure global_url, avoid_direct_access, url_timeout_secs, e error_redirect_master conforme necessário. Reinicie o master e os ServerNodes modificados.

clip0239
circle-info

Observação sobre SSL: Se seus ServerNodes usarem uma URL segura (https://) você deve copiar as DLLs de SSL para a pasta do master HyperServer. Essas DLLs podem ser encontradas em:

..\Framework\uniGUI\SSL\dll\x86

ou

..\Framework\uniGUI\SSL\dll\x64