Você está na página 1de 17

Poder Judiciário

Tribunal de Justiça do Estado de Roraima

WILDFLY 8.2
MODCLUSTER 1.3.0
Conceitos, Instalação e
Configuração

1

1. Conceitos 3 1.Poder Judiciário Tribunal de Justiça do Estado de Roraima SUMÁRIO 1.2 Módulos TJRR 6 3.1 Pré-requisitos 15 4.1.1 Adicionar conexões JDBC 8 3.4 Data-source utilizando security-domain 11 3.1 Modos de Operação 3 1.1 Servidor Master 7 7 3.3 SSO utilizando o AAS 10 3.1.2 Compilação 15 4.2 Sistema de mensagens 9 3. Modcluster 15 4.3 Servidor Master e Slave 14 4.1.1.2 Módulos 3 2.1 Módulos JDBC 5 2. Referências 17 2 .1.6 Cadastro do servidor slave 12 3. Configuração 3.5 Preparação modcluster 11 3. Instalação 4 2.3 Instalação 16 5.2 Servidor Slave 12 3.

1. No standalone mode é possível iniciar o servidor com diferentes profiles: • Standalone: profile padrão.xml> é a configuração do standalone-full.sh --server-config=standalone. os módulos ficavam todos espalhados dentro do diretório <modules>. JBoss AS 7. • Standalone-ha: Definido no arquivo <standalone/configuration/standalone-ha. • Standalone-full-ha: Definido no arquivo <standalone/configuration/standalone-full-ha. Conforme novos módulos iam sendo adicionados ficava difícil saber qual módulo era nativo e qual havia 3 .xml>). Definido no arquivo <standalone/configuration/standalone.xml No managed domain existe ainda um arquivo host.xml com alta disponibilidade. O modo domínio gerenciado (managed domain) permite rodar e gerenciar uma topologia multi-servidor.xml> é a configuração certificada JEE 7 full profile incluindo todas as tecnologias JEE 7 necessárias. Para iniciar o servidor de aplicação fornecendo o profile como parâmetro no standalone mode: $ .xml com alta disponibilidade.xml> (padrão) com o profile web e full.bin/domain.1 Modos de operação O servidor de aplicação wildfly pode ser iniciado em 2 modos diferentes de operação.Poder Judiciário Tribunal de Justiça do Estado de Roraima 1.2 Módulos Na versão anterior do servidor de aplicação.sh --domain-config=domain.xml> é a configuração do standalone. ambos com e sem alta disponibilidade.xml> e <host-slave. Existem 2 arquivos de exemplo no diretório (<host-master. Conceitos 1. Já no modo servidor independente (standalone mode) apenas uma instância é utilizada.xml Já no managed domain: $ . No managed domain existe apenas o arquivo <domain/configuration/domain. • Standalone-full: Definido no arquivo <standalone/configuration/standalone-full.xml dentro do diretório <domain/configuration> que define se o host configurado será master ou slave./bin/standalone.xml> é a configuração certificada JEE 7 web profile com as tecnologias necessárias.

0"> <global-modules> <module name="groovy-all"/> </global-modules> ..3.bind.api" /> </dependencies> </module> Com o módulo adicionado para poder utilizá-lo é necessário reiniciar o servidor de aplicação e fazer o deploy de uma aplicação que utilize o módulo como dependência. É possível forçar que o módulo seja carregado pelo wildfly e fique disponível para todas as aplicações.javassist" /> <module name="org.jar"/> </resources> <dependencies> <module name="javax. adicionando no arquivo xml de configuração do servidor (cuidar pra colocar no arquivo que está sendo utilizado) o módulo como global dentro do subsystem urn:jboss:domain:ee:2. modules/br/jus/tjrr/aas (definição) modules/br/jus/tjrr/aas/main (slot padrão) modules/br/jus/tjrr/aas/1. ficando separados dos módulos originais.0. sem a necessidade de especificar a dependência.4.api" /> <module name="org. Exemplo: … <subsystem xmlns="urn:jboss:domain:ee:2. Instalação Para instalar o servidor de aplicação basta extrair o zip ou tar. 2.xml> que descreve as dependências do módulo.1" name="groovy-all"> <resources> <resource-root path="groovy-all-2.. Como solução para este problema no Wildfly os módulos nativos ficam dentro do diretório <modules/system/layers/base> e os módulos extras podem ser adicionados dentro de <modules> apenas.0 (slot 1.slf4j" /> <module name="javax.xml.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.Poder Judiciário Tribunal de Justiça do Estado de Roraima sido adicionado pelo usuário.0) Exemplo do module. Um módulo é composto por um diretório que o define.gz baixado do 4 .xml para o groovy: <?xml version="1. um subdiretório definindo o slot que por padrão é o main com os jars e um arquivo chamado <module.

1" name="mysql"> <resources> <resource-root path="mysql-connector-java-5. Mysql e Oracle.api"/> <module name="javax.api"/> 5 .1" name="com.2.0.0.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.api"/> <module name="javax.jar> e <module.1.api"/> </dependencies> </module> Para o módulo do Mysql criamos a estrutura <modules/mysql/main> com o <mysql-connector-java-5.api"/> </dependencies> </module> Para o módulo do Postgres criamos a estrutura <modules/postgres/main> com o <postgresql-9.jar"/> </resources> <dependencies> <module name="javax.xml> com o seguinte conteúdo: <?xml version="1.jar"/> </resources> <dependencies> <module name="javax. 2.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="postgres"> <resources> <resource-root path="postgresql-9.jar> e module.transaction.oracle.classes12"> <resources> <resource-root path="classes12-10.2.1 Módulos JDBC Dentro do Tribunal de Justiça do Estado de Roraima são utilizados 3 (três) bancos de dados: Postgres.23.jar"/> </resources> <dependencies> <module name="javax.2.23.transaction.jar> e <module. É preciso adicionar os drivers JDBC de cada banco de dado como módulos no Wildfly.0.xml com o seguinte conteúdo: <?xml version="1.1.xml> com o seguinte conteúdo: <?xml version="1.1-903.jdbc4.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.0.1-903.jdbc4. No módulo do Oracle criamos a estrutura <modules/com/oracle/classes12/main> com o <classes12-10.Poder Judiciário Tribunal de Justiça do Estado de Roraima site oficial para o diretório de preferência (/usr/local/wildfly) e iniciar a configuração.2.

jdk" /> </dependencies> </module> Para o módulo do AAS criamos a estrutura <modules/tjrr/aas-module/main> com o <tjrr-aasdomain-1.Poder Judiciário Tribunal de Justiça do Estado de Roraima <module name="javax.1-SNAPSHOT.slf4j" /> <module name="javax.1" name="groovy-all"> <resources> <resource-root path="groovy-all-2. <tjrr-aas-remote-api1.xml.api" /> <module name="javax.ejb.3.api" /> <module name="org.jar> e <module. Para o módulo do Groovy criamos a estrutura <modules/groovy-all/main> com o <groovy-all-2.hibernate" /> <module name="org.api"/> </dependencies> </module> 2.persistence.api" /> <module name="org.jar"/> <resource-root path="tjrr-aas-remote-api-1.1-SNAPSHOT.xml> com o seguinte conteúdo: <?xml version="1.persistence.javassist" /> <module name="org.1-SNAPSHOT.xml> com o seguinte conteúdo: <?xml version="1.jar>.api" /> <module name="javax. <tjrr-aas-module-1.jar"/> </resources> <dependencies> <module name="groovy-all" /> <module name="javax.javassist" /> <module name="org.1-SNAPSHOT.1" name="tjrr.1.jar"/> <resource-root path="tjrr-aas-module-1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.jar> e <module.1-SNAPSHOT.api" /> </dependencies> </module> 6 .api" /> <module name="sun.1.1-SNAPSHOT.aas-module"> <resources> <resource-root path="tjrr-aas-domain-1.jar>.bind.hibernate" /> <module name="org.6.1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.bind. Da mesma forma adicionamos o AAS que é módulo responsável pela autenticação e autorização.1.jar"/> </resources> <dependencies> <module name="javax.6.transaction.xml.ejb.1.3.2 Módulos TJRR A maior parte das aplicações desenvolvidas no TJRR utilizam o Groovy e para evitar que cada aplicação leve a mesma dependência o adicionamos como módulo.slf4j" /> <module name="javax.1.

Poder Judiciário Tribunal de Justiça do Estado de Roraima 3.necessário para alterar o diretório padrão dos logs --> <server name="app-unicas-01" group="gp-app-unicas-01" auto-start="true"/> <!-grupo de aplicações rodando na porta 8080 --> <server name="app-replicadas" group="gp-app-replicadas" auto-start="true"> <!-grupo de aplicações rodando na porta 8330 (8080 + 250 do offset) --> <socket-bindings port-offset="250"/> </server> </servers> </host> 7 .configurações de memória --> <heap size="3g" max-size="3g"/> <permgen size="256m" max-size="512m"/> <jvm-options> <option value="-server"/> </jvm-options> </jvm> </jvms> <servers directory-grouping="by-type"> <!-.1.50.1.ip para expor a interface de gerenciamento --> </interface> <interface name="public"> <inet-address value="10.0' encoding='UTF-8'?> <host name="producao28m" xmlns="urn:jboss:domain:2.1 Servidor Master Vamos editar o arquivo <domain/configuration/host.50.28"/> <!-.xml> para iniciar as configurações: <?xml version='1.. Configuração 3.28"/> <!-.nome do servidor --> <management> .ip para expor a interface pública (aplicações) --> </interface> <interface name="unsecure"> <any-address/> </interface> </interfaces> <jvms> <jvm name="default"> <!-. </management> <domain-controller> <local/> </domain-controller> <interfaces> <interface name="management"> <inet-address value="10.2"> <!-..

definição do grupo gpapp-replicados --> <jvm name="default"> <heap size="1024m" max-size="2048m"/> <!-. full e full-ha.xml> vem com a definição dos profiles: default. O arquivo padrão <domain.definição do grupo gpapp-unicas-02 --> <jvm name="default"> <heap size="1024m" max-size="2048m"/> <!-.1 Adicionar conexões JDBC Busque pelo texto: <subsystem xmlns="urn:jboss:domain:datasources:2. deixando apenas o full-ha.0"> 8 .1. Busque pelo texto: <subsystem xmlns="urn:jboss:domain:transactions:2.definição de memória do grupo gpapp-unicas-01 --> </jvm> <socket-binding-group ref="full-ha-sockets"/> </server-group> <server-group name="gp-app-unicas-02" profile="full-ha"> <!-.definição de memória do grupo gpapp-unicas-02 --> </jvm> <socket-binding-group ref="full-ha-sockets"/> </server-group> <server-group name="gp-app-replicadas" profile="full-ha"> <!-.Poder Judiciário Tribunal de Justiça do Estado de Roraima Os grupos gp-app-unicas-01 e gp-app-replicadas serão definidos no final de <domain.definição de memória do grupo gpapp-replicados --> </jvm> <socket-binding-group ref="full-ha-sockets"/> </server-group> </server-groups> … Os 3 (três) grupos são configurados para utilizar o profile full-ha que habilita todos os recursos e alta disponibilidade. ha e full.0"> E dentro do nó core-environment adicione o atributo node-identifier com o nome do nó a ser configurado no profile (utilizado pelo mod_cluster): <core-environment node-identifier="producao28m-full-ha"> 3. ha.definição do grupo gpapp-unicas-01 --> <jvm name="default"> <heap size="1024m" max-size="2048m"/> <!-. Para evitar confusão na hora de editar o xml e acabar adicionando ou alterando recurso no profile errado removemos as definições do profile default.xml>: … <server-groups> <server-group name="gp-app-unicas-01" profile="full-ha"> <!-.

será definido posteriormente --> </security> <validation> <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> <validate-on-match>true</validate-on-match> <background-validation>true</background-validation> </validation> <statement> <share-prepared-statements>false</share-prepared-statements> </statement> </datasource> Dentro do nó drivers adicione a seguinte estrutura para registrar os módulos JDBC Oracle.2 Sistema de mensagens É necessário criar uma senha no <domain.jdbc2.MysqlXADataSource</xa-datasource-class> </driver> <driver name="oracle-classes12" module="com. Mysql e Postgres: <driver name="postgres" module="postgres"> <xa-datasource-class>org. Busque pelo texto: 9 .OracleDriver</driver-class> <xa-datasource-class>oracle.1.xa.optional.jdbc.OracleXADataSource</xadatasource-class> </driver> Após esta configuração do driver também é possível cadastrar o datasource via interface de gerenciamento web que roda por padrão na porta 9990.xml> do master que será utilizada para a troca de mensagens utilizando o hornetq entre os servidores.postgresql.Driver</driver-class> <driver>postgres</driver> <pool> <max-pool-size>15</max-pool-size> </pool> <security> <security-domain>tjrr-producao-ds</security-domain> <!-. 3.50.jdbc.jdbc.mysql.14:5432/tjrr-producao</connectionurl> <driver-class>org.client.postgresql.PGXADataSource</xa-datasourceclass> </driver> <driver name="mysql" module="mysql"> <xa-datasourceclass>com.1.classes12"> <driver-class>oracle.xa.oracle.Poder Judiciário Tribunal de Justiça do Estado de Roraima E dentro do nó datasources adicione a seguinte estrutura: <datasource jta="true" jndi-name="java:jboss/datasources/tjrr-postgresql" pool-name="tjrrpostgresql" enabled="false" use-ccm="true"> <connection-url>jdbc:postgresql://10.

acompanhamentoDocumentoQueue.2"> E adicione o security-domain a seguir: <security-domain name="tjrr-security" cache-type="default"> 10 .2"> E dentro do nó server.1. ocorrenciaFuncionarioQueue e loggerQueue): <jms-queue name="envioEmailQueue"> <entry name="queue/envioEmail"/> <entry name="java:jboss/exported/jms/queue/envioEmail"/> </jms-queue> <jms-queue name="acompanhamentoDocumentoQueue"> <entry name="queue/acompanhamentoDocumento"/> <entry name="java:jboss/exported/jms/queue/acompanhamentoDocumento"/> </jms-queue> <jms-queue name="ocorrenciaFuncionarioQueue"> <entry name="queue/ocorrenciaFuncionario"/> <entry name="java:jboss/exported/jms/queue/ocorrenciaFuncionario"/> </jms-queue> <jms-queue name="loggerQueue"> <entry name="queue/logger"/> <entry name="java:jboss/exported/jms/queue/logger"/> </jms-queue> 3.0"> E dentro do nó hornetq-server adicione a seguinte estrutura substituindo a senha: <cluster-password>changeme</cluster-password> Ainda dentro do subssystem busque pelo texto: jms-destinations E adicione as seguintes filas (envioEmailQueue.tjrr.jus.br" path="/"/> Para habilitar o AAS busque pelo texto: <subsystem xmlns="urn:jboss:domain:security:1. sub nó host adicione a configuração após os filtros existentes: <single-sign-on domain="sistemas.xml> busque pelo texto: <subsystem xmlns="urn:jboss:domain:undertow:1. No <domain.3 SSO utilizando o AAS Para definir o domínio de SSO é necessário adicionar o domain e a partir de qual path o cookie será utilizado.Poder Judiciário Tribunal de Justiça do Estado de Roraima <subsystem xmlns="urn:jboss:domain:messaging:2.

tjrr.aas.1.SecureIdentityLoginModule password 3.datasource.1.1. No <doman. como configurado no item 3. é necessário criar adicioná-lo com a seguinte configuração (substituindo o usuário e senha): <security-domain name="tjrr-producao-ds" cache-type="default"> <authentication> <login-module code="org.security.Poder Judiciário Tribunal de Justiça do Estado de Roraima <authentication> <login-module code="br.picketbox.jar org.picketbox.4 Data-source utilizando security-domain Para permitir que o data-source utilize um security-domain. procedimento realizado com um deploy do agente para o servidor de aplicação posteriormente.5 Preparação modcluster Mesmo ainda não configurando o apache com o modcluster habilitado já vamos realizar a configuração do mesmo no wildfly. 3.2"> E ajuste para o ambiente seguindo o modelo (substituir o ip e a porta): <mod-cluster-config advertise-socket="modcluster" proxy-list="ip:porta" advertise="false" sticky-session="true" connector="ajp"> <dynamic-load-provider> 11 .security.jus.aas-module"> <module-option name="throwValidateError" value="true"/> </login-module> </authentication> </security-domain> Seguindo estes passos as aplicações que utilizam o AAS só precisarão que o agente do AAS esteja rodando no servidor.security.TJRRLoginModule" flag="required" module="tjrr.datasource.SecureIdentityLoginModule" flag="required"> <module-option name="username" value="username"/> <module-option name="password" value="passwordhash"/> </login-module> </authentication> </security-domain> Para gerar o hash da senha execute o seguinte comando dentro de <bin/client> substituindo a senha: java -cp jboss-cli-client.xml> busque pelo texto: <subsystem xmlns="urn:jboss:domain:modcluster:1.1.

2.2 Servidor Slave Copie o <domain. 3. 3.6 --> </server-identities> <authentication> <local default-user="$local" skip-group-loading="true"/> <properties path="mgmt-users. Não adicione a nenhum grupo. Entre com o nome do usuário. Entre com a senha. 6.0" para não conflitar com o master. 7.xml> do master e altere apenas o node-identifier dentro do subsystem xmlns="urn:jboss:domain:transactions:2.1. Vamos alterar o <host. 8.sh 1. O procedimento é realizado iniciando o servidor de aplicação e rodando o seguinte comando: $ bin/add-user. 3.troque pelo usuário criado no master --> <management> <security-realms> <security-realm name="ManagementRealm"> <server-identities> <secret value="TldWbU9EbGxZMlEwWkRaaE1tTmhNelU0TldGa01tWmg="/> <!-secret gerado no passo 8 do item 3. Confirme a senha. Confirme as informações. Crie como Management User. Anote o secret gerado que será utilizado posteriormente no slave. 5.2"> <!-.0' encoding='UTF-8'?> <host name="producao30s" xmlns="urn:jboss:domain:2.6 Cadastro do servidor slave Para configurar o slave é necessário criar um usuário e senha para comunicação com o master.properties" relative- 12 .1.xml> conforme o modelo: <?xml version='1. Responsa yes para a pergunta confirmando que deseja utilizar este usuário para conexão de master/slave. opção a.Poder Judiciário Tribunal de Justiça do Estado de Roraima <load-metric type="cpu"/> </dynamic-load-provider> </mod-cluster-config> Com isso basta ter o modcluster configurado no apache no ip especificado que o modcluster inicia o balanceamento. 4.

domain.dir"/> </authorization> </security-realm> <security-realm name="ApplicationRealm"> <authentication> <local default-user="$local" allowed-users="*" skip-group-loading="true"/> <properties path="application-users.domain.management.properties" relativeto="jboss.server.address}" {jboss.master.native.port:9999}" security-realm="ManagementRealm"/> <!-variáveis para passar via script de inicialização para encontrar o master --> </domain-controller> port="$ definindo 13 .domain.properties" relativeto="jboss.config.properties" relativeto="jboss.log" relative-to="jboss.master.domain.dir"/> </authentication> <authorization> <properties path="application-roles.dir"/> </authorization> </security-realm> </security-realms> <audit-log> <formatters> <json-formatter name="json-formatter"/> </formatters> <handlers> <file-handler name="host-file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.config.domain.dir"/> <file-handler name="server-file" formatter="json-formatter" path="audit-log.dir"/> </authentication> <authorization map-groups-to-roles="false"> <properties path="mgmt-groups.data.domain.domain.port:9999}"/> </native-interface> </management-interfaces> </management> <domain-controller> <remote host="${jboss.Poder Judiciário Tribunal de Justiça do Estado de Roraima to="jboss.data.config.config.dir"/> </handlers> <logger log-boot="true" log-read-only="false" enabled="false"> <handlers> <handler name="host-file"/> </handlers> </logger> <server-logger log-boot="true" log-read-only="false" enabled="false"> <handlers> <handler name="server-file"/> </handlers> </server-logger> </audit-log> <management-interfaces> <native-interface security-realm="ManagementRealm"> <socket interface="management" port="$ {jboss.

modules.domain.conf> no master.30"/> <!-.net.Poder Judiciário Tribunal de Justiça do Estado de Roraima <interfaces> <interface name="management"> <inet-address value="10.dir=/var/log/wildfly" JAVA_OPTS="$JAVA_OPTS -Xms3g -Xmx3g -XX:MaxPermSize=512m -XX:MaxNewSize=1g -XX:NewSize=1g -XX:SurvivorRatio=6 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Djava.bind_addr=ipmaster -Djboss.rmi. altere o ipmaster e adicione dentro do bloco a linha realçada: if [ "x$JAVA_OPTS" = "x" ].gcInterval=3600000 -Dsun.1.jboss.3 Servidor Master e Slave Edite o arquivo <bin/domain.1.necessário para alterar o diretório padrão dos logs --> <server name="app-unicas-02" group="gp-app-unicas-02" auto-start="true"> <!-grupo de aplicações 2 rodando na porta 8230 (8080 + 150) --> <socket-bindings port-offset="150"/> </server> <server name="app-replicadas" group="gp-app-replicadas" auto-start="true"> <!-grupo de aplicações replicadas rodando na porta 8330 (8080 + 250) --> <socket-bindings port-offset="250"/> </server> </servers> </host> 3.log.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.dgc.headless=true" else echo "JAVA_OPTS already set in environment.30"/> <!-.ip da máquina slave --> </interface> <interface name="public"> <inet-address value="10.gcInterval=3600000" JAVA_OPTS="$JAVA_OPTS -Djboss.system.preferIPv4Stack=true -Dorg.server.rmi.dgc.client.warning=true -Dsun. then JAVA_OPTS="-Djgroups.50. overriding default settings with values: $JAVA_OPTS" fi 14 .awt.resolver.50.ip da máquina slave --> </interface> <interface name="unsecure"> <any-address/> </interface> </interfaces> <jvms> <jvm name="default"> <heap size="3g" max-size="3g"/> <permgen size="256m" max-size="512m"/> <jvm-options> <option value="-server"/> </jvm-options> </jvm> </jvms> <servers directory-grouping="by-type"> <!-.

Final: $ git clone https://github.Final e adicionar no apache seguindo os próximos passos.system.0.bind_addr=ipmaster -Djboss.1 Pré-requisitos Instalar as dependências: # # # # apt-get apt-get apt-get apt-get update install -y autoconf libtool git apache2 remove apache2-threaded-dev install -y apache2-prefork-dev 4.rmi.domain.6 para o outro servidor slave.git $ git checkout 1.dgc.3.warning=true -Dsun.6.3.gcInterval=3600000" JAVA_OPTS="$JAVA_OPTS -Djboss.rmi. Modcluster Infelizmente a última versão disponível do modcluster no site é a 1.4 é necessário compilar os fontes da versão 1.resolver.dir=/var/log/wildfly" JAVA_OPTS="$JAVA_OPTS -Xms3g -Xmx3g -XX:MaxPermSize=512m -XX:MaxNewSize=1g -XX:NewSize=1g -XX:SurvivorRatio=6 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Djava.Poder Judiciário Tribunal de Justiça do Estado de Roraima Edite o mesmo arquivo no slave. altere o ipmaster e adicione dentro do bloco a linha realçada: if [ "x$JAVA_OPTS" = "x" ]. Para fazer o modcluster funcionar no apache 2. overriding default settings with values: $JAVA_OPTS" fi Com estes procedimentos está finalizada a configuração dos servidores de aplicação para funcionar como master e slave.net.client.address=ipmaster -Djboss.port=9999 -Djboss.dgc.modules. then JAVA_OPTS="-Djgroups.preferIPv4Stack=true -Dorg.gcInterval=3600000 -Dsun. 4.xml> do master e altere apenas o node-identifier dentro do subsystem xmlns="urn:jboss:domain:transactions:2.domain.0.domain.2 Compilação Baixar o fonte da versão 1.1. 4.4 que está disponível para a maior parte das distribuições.2.0.0" para não conflitar com o master.master. Copie o <domain. Caso queria adicionar mais um slave basta repetir a tarefa criando um novo usuário na etapa 3.server.Final que não é compatível com o apache 2.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.master.com/modcluster/mod_cluster.awt.log.Final 15 .3.headless=true" else echo "JAVA_OPTS already set in environment.jboss.

load> com o seguinte conteúdo: LoadModule LoadModule LoadModule LoadModule advertise_module /usr/lib/apache2/modules/mod_advertise.so /usr/lib/apache2/modules/ cp native/mod_proxy_cluster/*../configure --with-apxs=/usr/bin/apxs make 4.so proxy_cluster_module /usr/lib/apache2/modules/mod_proxy_cluster./mod_manager .so manager_module /usr/lib/apache2/modules/mod_manager./configure --with-apxs=/usr/bin/apxs make $ $ $ $ cd .so /usr/lib/apache2/modules/ cp native/mod_manager/*.load>: # ln -s /etc/apache2/mods-available/proxy_cluster./mod_proxy_cluster ./buildconf .load Edite o arquivo </etc/apache2/sites-available/default> e adicione ao final o seguinte conteúdo: 16 .so /usr/lib/apache2/modules/ cp native/mod_cluster_slotmem/*./configure --with-apxs=/usr/bin/apxs make $ $ $ $ cd .so /usr/lib/apache2/modules/ Criar o arquivo </etc/apache2/mods-available/proxy_cluster.load> dentro de </etc/apache2/mods-enabled> com o nome <proxy_cluster.so Crie um link simbólico para o </etc/apache2/modsavailable/proxy_cluster./buildconf ./mod_cluster_slotmem .3 Instalação A instalação é realizada copiando os módulos gerado na etapa anterior para a instalação do apache.Poder Judiciário Tribunal de Justiça do Estado de Roraima $ cd mod_cluster Compilar os módulos: $ $ $ $ cd native/advertise . # # # # cp native/advertise/*.so slotmem_module /usr/lib/apache2/modules/mod_cluster_slotmem./buildconf ./buildconf .load /etc/apache2/modsenabled/proxy_cluster./configure --with-apxs=/usr/bin/apxs make $ $ $ $ cd ...

wordpress. http://blog.alexis-hassler. https://jbossdivers. adicionando usuários e as respectivas senhas: # htpasswd -c /etc/modclusterpassword username Com isso o master e o slave devem aparecer na interface administrativa. Referências 1.com/2014/08/compiler-modcluster-pourapache24. 5.Poder Judiciário Tribunal de Justiça do Estado de Roraima <IfModule proxy_module> Listen *:8080 Listen *:5588 ManagerBalancerName tjrr-ha-balancer MemManagerFile /var/cache/mod_cluster <VirtualHost *:8080> <Location /> Order deny.allow Allow from all #Require all granted </Location> KeepAliveTimeout 900 MaxKeepAliveRequests 0 EnableMCPMReceive ServerAdvertise Off </VirtualHost> <VirtualHost *:5588> <Location /modcluster> SetHandler mod_cluster-manager AuthType Basic AuthName "TJRR-Balancer" AuthUserFile /etc/modclusterpassword Require user tjadmin </Location> </VirtualHost> </IfModule> Crie o arquivo </etc/modclusterpassword> para proteger a interface de adminitração do modcluster que roda na porta 5588.com/2013/11/11/protegendo-o-mod-clustermanager/ 17 .wordpress. https://jbossdivers.com/2014/03/23/configurando-umambiente-wildfly-8-profissional/ 2. contexto /modcluster.html 4. https://jbossdivers.com/2014/03/23/configurando-umambiente-wildfly-8-profissional-parte-2/ 3.wordpress.