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:
[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=0Os 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

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