Considerações iniciais
- O serviço de indexação (Solr) precisa ser único e compartilhado por todas as instâncias, portanto deve ser isolado em outro ambiente - acesse mais informações;
- O repositório de arquivos do Fluig (Volume) deve estar em uma pasta compartilhada por todas as instâncias;
- A pasta de aplicativos "(FLUIG_HOME/appserver/apps") deve estar em uma pasta compartilhada por todas as instâncias;
- O banco de dados dever ser único para todas as instâncias;
- Todas as instâncias devem estar atualizadas com a mesma versão do fluig.
- Cada instância precisa ter um nome diferente, configurada via arquivo FLUIG_HOME/appserver/domain/configuration/host.xml.
Preparando ambiente
Antes de começar a instalação, é preciso estar com o ambiente preparado. Faça o seguinte:
- Instale o banco de dados e crie uma instância;
- É mandatório a utilização de um servidor de Cache externo. A recomendação é utilizar o Redis (Instalar conforme as recomendações [TODO: Por link]);
- Escolha uma pasta em um servidor e torne-a acessível para todas as máquinas que farão parte do Load Balancer. Essa pasta conterá os arquivos que precisam ser compartilhados entre todas as instâncias. Conterá no mínimo duas pastas: apps e wcmdir.
Instalando a primeira instância
Para efeitos de simplificação, esse tutorial irá considerar que: 1) o servidor Realtime a ser usado será o instalado nesse nó; 2) a instalação será feita na pasta padrão (“/opt/fluig”).
O Fluig possui uma configuração especial para ser executado em cluster com Load Balancing. Essa configuração é habilitada durante a instalação.
Instale a aplicação, usando o procedimento normal, porém utilize a seguinte linha de comando:
sudo ./jdk-64/bin/java -jar -Dprofile=full-ha fluig-installer.jar |
- Abra em um editor de texto o arquivo FLUIG_HOME/appserver/domain/configuration/domain.xml e altere algumas configurações:
Encontre a propriedade de binding "java:global/wcm/globalDataDir" e altere para apontar para a pasta compartilhada entre as instâncias;
<simple name="java:global/wcm/globalDataDir" value="{pasta global}/wcmdir"/> |
Encontre o subsystem "urn:com.totvs.technology.wcm:1.0" e altere para apontar para a pasta compartilhada entre as instâncias;
<subsystem xmlns="urn:com.totvs.technology.wcm:1.0" dir="{pasta global}/apps" refresh="15"/> |
- Mova o conteúdo da pasta FLUIG_HOME/repository/wcmdir para a pasta {pasta global}/wcmdir
- Mova o conteúdo da pasta FLUIG_HOME/appserver/apps para a pasta {pasta global}/apps.
- Configure o fluig Indexer (Solr) para ser executado em servidor separado, confome instruções aqui.
- Abra em um editor de texto o arquivo FLUIG_HOME/repository/wcmdir/config/configuration.properties e altere algumas configurações:
- Encontre a chave "wcm/cacheServerAddress" e altere o valor para apontar para o servidor de cache configurado conforme recomendação [TODO: por Link].
- Inicie os serviços do cache, fluig_Indexer e fluig_RealTime e em seguida inicie o fluig.
- Acesse o fluig com o usuário "wcmadmin", crie o tenant e faça as configurações necessárias.
- Derrube o fluig e os serviços do fluig_RealTime, fluig_Indexer e do cache.
Criando uma segunda instância na mesma instalação
O fluig já vem preparado para executar uma segunda instância na mesma instalação. Basta habilitar e configurar parâmetros como memória, port offset e nome da instância.
Abra em um editor de texto o arquivo FLUIG_HOME/appserver/domain/configuration/host.xml. Procure pela tag <servers>, dentro há duas tags <server>. A segunda é a que precisa ser alterada.
- Altere o valor do atributo "auto-start" para "true". Com isso a segunda instância será iniciada automaticamente junto com a primeira.
- Caso desejar ou for necessário, altere o atributo "port-offset" da tag "socket-bindings".
- Ajuste as configurações de memória na tag "heap".
É possível adicionar mais instâncias na mesma instalação. Basta replicar toda a seção "<server>" e tomar o cuidado de alterar pelo menos os atributos "port-offset" e "name".
Criando uma instância em outra máquina
- Instale a aplicação pelo procedimento normal e siga as instruções até o procedimento antes de iniciar o servidor.
Abra em um editor de texto o arquivo FLUIG_HOME/appserver/domain/configuration/host.xml. Procure pela tag <servers>, dentro há as tags <server>. Altere o atributo "name" dessas tags. O valor desse atributo precisa ser diferente em cada instância.
Configurando o apache mod_proxy
Abra o arquivo httpd.conf e adicione o seguinte código:
Header add Set-Cookie "FLUIGCOOKIE=%{UNIQUE_ID}e.%{BALANCER_WORKER_ROUTE}e; path=/" env=!VARCOOKIE
<Proxy balancer://mycluster>
Order deny,allow
Allow from all
BalancerMember http://{ip-servidor-1}:8180 route=node1
BalancerMember http://{ip-servidor-1}:8280 route=node2
BalancerMember http://{ip-servidor-2}:8080 route=node3
ProxySet stickysession=FLUIGCOOKIE
</Proxy>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / balancer://mycluster/ stickysession=FLUIGCOOKIE nofailover=Off
DocumentRoot /var/www
<Directory /var/www>
Options -Indexes
Order allow,deny
Allow from all
</Directory>
</VirtualHost> |
O que é importante entender aqui:
- Cada “BalancerMember” indica um servidor, deve apontar para o IP e porta corretos.
- É criado um Cookie chamado “FLUIGCOOKIE”, usado para manter afinidade da sessão. Sem isso, não funciona.
Altere a tag abaixo no arquivo $FLUIG_HOME/jboss/standalone/configuration/standalone.xml de cada servidor do Fluig para: <subsystem xmlns="urn:jboss:domain:web:1.5" default-virtual-server="default-host" instance-id="${jboss.node.name:fluignd2}" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="https" socket-binding="http" proxy-name="<url_virtual_host_fluig>" proxy-port="<porta_virtual_host_fluig>"/> <connector name="httplog" protocol="HTTP/1.1" scheme="http" socket-binding="httplog"/> <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp" enabled="true"/> <virtual-server name="default-host" enable-welcome-root="false"> <sso cache-container="web" cache-name="sso" reauthenticate="false"/> </virtual-server> </subsystem> Onde: - <url_virtual_host_fluig>: é a URL definida no Apache para acessar o Fluig;
- <porta_virtual_host_fluig>: é a porta definida no Apache para acessar o Fluig.
|
猼慰瑳汹㵥昢湯慦業祬洺湯獯慰散㸢猼慰瑳汹㵥挢汯牯⌺〰〰〰戻捡杫潲湵ⵤ潣潬㩲昣晦晦㭦㸢灡獰牥敶㱲猯慰㹮戼㹲⼼灳湡