Exemplo de Implantação (Server Farm)
Na seção anterior implantamos e executamos uma instância do HyperServer no Linux. Nesta seção estendemos o exemplo para suportar a capacidade de server farm do HyperServer. Antes de prosseguir, talvez você queira ler o tópico principal sobre as capacidades de server farm do HyperServer: https://unigui.com/doc/online_help/hyperserver-server-farm.htm
Em um cenário do mundo real, um server farm consiste em vários servidores físicos vinculados para criar um cluster. Neste exemplo vamos criar múltiplas instâncias do HyperServer na mesma máquina física em portas diferentes para emular um server farm. Na terminologia uniGUI, cada instância escrava do HyperServer é chamada de ServerNode. Criaremos três ServerNodes que serão conectados a uma instância master do HyperServer.
Iniciaremos os testes em modo de cluster-0 e depois estenderemos para o modo-2. Veja Modos de Operação de Cluster para mais detalhes: https://unigui.com/doc/online_help/cluster-operation-modes.htm
Configuração do Master HyperServer (Modo-0)
A instância master do HyperServer atuará apenas como balanceador de carga e não servirá aplicações web, então remova todas as referências a aplicações no arquivo CFG. (Se você estiver configurando uma nova instância do zero, esta etapa não é necessária.)
Antes de modificar o arquivo CFG, faça um backup do arquivo CFG existente para que você possa restaurar as configurações feitas para o exemplo standalone anterior, se necessário: https://unigui.com/doc/online_help/deployment-example-(standalone.htm
O primeiro passo é definir a aplicação padrão como nula:
[hyper_server]
binary_name=Desabilite todas as aplicações previamente configuradas definindo enabled como 0:
[application-0]
enabled=0Em seguida, configure os ServerNodes escravos:
[server-0]
enabled=1
url=http://localhost:8077
name=ServerNode-A
cluster_mode=0
token=
[server-1]
enabled=1
url=http://localhost:8078
name=ServerNode-B
cluster_mode=0
token=
[server-2]
enabled=1
url=http://localhost:8079
name=ServerNode-C
cluster_mode=0
token=Nossos ServerNodes escravos irão rodar nas portas 8077, 8078 e 8079. O servidor master roda na porta 88.
Por enquanto deixe o token parâmetro em branco. Você definirá seu valor na próxima etapa. O token é necessário para que o painel de controle do master HyperServer possa exibir os painéis de controle das escravas diretamente sem login.
Configuração dos ServerNodes Escravos
Cada ServerNode será configurado para executar uma aplicação específica. Neste exemplo os ServerNodes irão rodar dentro de subpastas dentro da pasta principal /hyper_server. Nomeie as três pastas:
server_node_a
server_node_b
server_node_c
Copie o executável binário chamado hyper_server para todas essas pastas. Após copiar, você pode executar temporariamente cada binário para criar automaticamente o arquivo CFG. O arquivo CFG criado automaticamente conterá um token parâmetro gerado aleatoriamente que você deve copiar para o arquivo CFG do hyper_server master no correspondente token parâmetro. Por exemplo:
Repita o procedimento acima para cada ServerNode para garantir que todos os token parâmetros estejam corretamente configurados.
Executando o Server Farm
Comece executando os ServerNodes. Abra uma janela de terminal separada para cada ServerNode, mude para a subpasta correspondente e execute:
/hyper_server/server_node_a$ sudo ./hyper_server
(Você pode preferir uma forma diferente de executar os ServerNodes — por exemplo, um arquivo em lote. Em produção, os ServerNodes serão executados como serviços do Linux. Veja Executando o HyperServer como um Serviço do Linux: https://unigui.com/doc/online_help/running-hyperserver-as-a-linux.htm)
Depois de executar os ServerNodes, execute a instância principal do HyperServer:
/hyper_server$ sudo ./hyper_server
Teste a configuração abrindo o painel de controle do servidor do master HyperServer. Imagens de exemplo da documentação original estão linkadas abaixo:
Painel de controle master mostrando todos os ServerNodes ativos: https://unigui.com/doc/online_help/clip0346.png
Acesso ao painel de controle via ícone de lupa (coluna Ações): https://unigui.com/doc/online_help/clip0347.png
Painel de controle de um ServerNode selecionado (exemplos): https://unigui.com/doc/online_help/clip0348.png e https://unigui.com/doc/online_help/clip0349.png
Teste as aplicações individuais através do servidor master (substitua conforme apropriado):
http://:88 — página principal: https://unigui.com/doc/online_help/clip0350.png
http://:88/action — aplicação action: https://unigui.com/doc/online_help/clip0351.png
http://:88/paint — aplicação paint: https://unigui.com/doc/online_help/clip0352.png
Todas as aplicações devem rodar conforme esperado.
Você pode continuar para a próxima etapa: testar esta configuração no Modo-2 de implantação do HyperServer: https://unigui.com/doc/online_help/hyperserver-server-farm-mode-2.htm