Configurando Apache Web Server, Mod Proxy e JBoss AS 7.1.2 (JBoss EAP 6)

Postado em Atualizado em

Olá amigos,

Hoje vamos falar de um assunto bem útil para quem administra instâncias JBoss. Quando iniciamos o JBoss e realizamos o deploy de uma aplicação a url geralmente assume o seguinte formato:

Por exemplo:

O nome do contexto (context web) é personalizável e  a maneira mais simples de alterá-lo (sem alterar o nome de arquivo) é adicionando a configuração no arquivo jboss-web.xml no diretório WEB-INF do seu projeto:

<jboss-web>
   <context-root>customContext</context-root>
</jboss-web>

Para que uma aplicação passe a responder na raíz “/”,  siga os procedimentos abaixo. ( Não é necessario o uso adicionar ou alterar nenhuma configuração no arquivo jboss-web.xml ).

Para o modo standalone edite o arquivo JBOSS_HOME/standalone/configuration/standalone.xml (standalone-full.xml, etc) e para o modo domain edite o arquivo JBOSS_HOME/domain/configuration/domain.xml.

Agora edite o subsystem web e deixe-o como abaixo.

Nota: Se for utilizar o modo domain edite apenas o perfil que está sendo utilizado no server group em questão.


<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
   <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
     <virtual-server name="default-host" enable-welcome-root="false" default-web-module="projeto-teste">
       <alias name="localhost"/>
       <alias name="example.com"/>
     </virtual-server>
</subsystem>

O atributo enable-welcome-root=”false”  desabilita a “pagina inicial” default do JBoss  e default-web-module=”projeto-teste”   diz que o .WAR de nome projeto-teste.war que foi “deployado”,  deve ser a aplicação padrão para o subsytem web.

Agora nossa aplicação está respondendo na seguinte url:

Por exemplo:

Até agora nós vimos como implantar uma aplicação no contexto raíz do JBoss AS 7.1.2. O próximo passo será a configuração do mod_proxy.

Desde de o Apache 1.3 existe suporte opcional para o módulo chamado mod_proxy.so. Esse módulo  configura o Apache para agir como um servidor proxy, transmitindo as requisições para outras aplicações web como JBoss, Jetty e Tomcat.

No exemplo de hoje estou utilizando  duas plataformas diferentes apenas para fins didáticos. Veja abaixo:

Um usuário faz um requisição para um aplicação web utilizando o navegador de sua preferência. A request é encaminhada para o Apache que em conjunto com o mod_proxy filtra o pedido e encaminha para a aplicação web solicitada. A aplicação responde fazendo todo o fluxo de retorno, tudo isso trafegando sobre o protocolo HTTP.

Não vou abordar a instalação do Apache pois não é o objetivo desse post .

Para utilizar o  mod_proxy é bem simples. Verifique se o módulo já está configurado no httpd.conf:

  LoadModule proxy_module modules/mod_proxy.so

Ainda no httpd.conf , adicione as seguintes configurações:

ProxyPass / http://192.168.0.158:8080/
ProxyPassReverse / http://192.168.0.158:8080/

Reinicie o Apache e tente acessar a aplicação apenas com o IP ou DNS do servidor Linux em que o Apache o Mod Proxy estão instalados. Não se esqueça de iniciar o JBoss com a opção -Djboss.bind.address=0.0.0.0 , caso contrário o Apache não conseguirá se comunicar com o JBoss.

Agora nossa aplicação está respondendo na seguinte url:

Veja:

Espero que tenham gostado🙂

Até mais… Abraços

Fonte: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypassrevers

5 comentários em “Configurando Apache Web Server, Mod Proxy e JBoss AS 7.1.2 (JBoss EAP 6)

    Ricardo Padua Crispim disse:
    3 de junho de 2013 às 11:21

    Bom dia, muito legal o seu artigo. Eu fiz esta configuração em um projeto, porém estou tendo problemas relacionados à autenticação da aplicação no jboss usando JAAS. Consigo fazer o redirecionamento, porém a aplicação não consegue autenticar quando acesso através do apache. Sabe o que pode estar acontecendo? Agradeço antecipadamente.

      Mauricio Magnani Jr respondido:
      3 de junho de 2013 às 11:28

      Oi Ricardo, vlw.

      Cara é bem complicado ter alguma idéia do que está rolando assim… nunca passei por isso… bom vc poderia me passar os logs em Trace?

      O erro só acontece no Apache mesmo? quando é acesso diretamente o JAAS funciona?

      Cola os logs no http://pastebin.com/ que dou uma olhada🙂

      Abs

    Ricardo disse:
    2 de agosto de 2013 às 10:43

    Bom dia, Mauricio.

    Como faço para rodar a aplicação no context / (raiz) , quando a estrutura esta dentro de um .ear – Ex: /jboss/perfil04/deployments/aplicacao-padrao-2013.ear/aplicacao-padrao-2013-core.war

    Paulo disse:
    11 de março de 2014 às 20:37

    Olá, muito bom, fiquei horas procurando algo que funcionasse na net hoje. Funcionou de primeira, no meu caso é uma aplicação antiga estou com JBoss 4.2. Abraço.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s