Esse tutorial irá mostrar como habilitar o acesso remoto no Wildfly, de modo que você possa gerenciar seu servidor de aplicação remotamente.
O Problema
Acredito que qualquer um esteja acostumado a instalar o Wildfly em um computador local com uma interface gráfica e navegadores de internet disponíveis. Deste modo, quando você precisa acessar a página administrativa do seu Wildfly através do link
http://localhost:8080/ para gerenciar seu servidor de aplicação, tudo funciona como esperado.
Porém, se o Wildfly estiver rodando em um computador remoto e você tentar acessar sua página administrativa através da rede pelo seu endereço de IP ou hostname, como
http://54.94.240.170:8080/ por exemplo, você provavelmente verá uma bela mensagem dizendo algo como
Esta página da web não está disponível, em outras palavras, o Wildfly disse “Não, obrigado, eu não estou aceitando requisições de outros caras a não ser os que estão em minha máquina local”.
A Primeira Possível Solução
Pularemos direto para a solução mais rápida para habilitar o acesso remoto, mas você poderá encontrar a explicação de como e porque isso funciona ao final deste tutorial.
Antes de continuar, certifique-se de que a máquina que o seu Wildfly está executando está aceitando requisições TCP nas portas 8080 e 9990.
Se o seu Wildfly estiver executando, acesse seu diretório bin e execute os seguintes comandos para pará-lo:
|
cd /opt/wildfly-8.2.0.Final/bin
./jboss-cli.sh --connect --command=:shutdown
|
Em seguida, inicie seu Wildfly utilizando o comando abaixo, o qual adiciona os parâmetros que habilitam o acesso remoto a partir de qualquer origem (IP/hostname) à página administrativa.
|
./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 &
|
Pronto!
A Segunda Possível Solução
Como alternativa à adicionar parâmetros ao seu comando de inicialização, você pode editar seu standalone.xml
para habilitar o acesso remoto à partir de qualquer origem. Essa abordagem é mais recomendada se você costuma acessar sua página administrativa com frequência, deste modo, você não precisará se lembrar de enviar parâmetros adicionais ao comando de inicialização, como mostrado anteriormente.
Primeiramente, acesse o diretório de configuração de seu Wildfly:
|
cd /opt/wildfly-8.2.0.Final/standalone/configuration
|
Em seguida, edite o arquivo standalone.xml
utilizando seu editor de arquivos predileto e realize as alterações abaixo:
Substitua isso:
|
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
|
Por isso:
|
<interface name="management">
<any-address/>
</interface>
<interface name="public">
<any-address/>
</interface>
|
Certifique-se de gravar suas alterações e reinicie seu Wildfly:
|
/opt/wildfly-8.2.0.Final/bin/jboss-cli.sh --connect --command=:reload
|
Feito.
A Explicação
A breve história é que, devido à questões de segurança, o Wildfly não deseja expor seus serviços em portas que podem ser acessadas sem a devida autorização. Um destes serviços é o JMX, o qual é utilizado para gerenciar servidores Java através da porta 9990.
Por padrão, o JMX irá permitir apenas conexões originadas de seu local, como foi possível observar no arquivo standalone.xml
. Para alterar este comportamento, você precisa permitir que outros hosts se conectem ao JMX, através de uma das soluções propostas.
Em ambientes de produção e por questões de segurança, tenha cuidado ao expor esse serviço, sendo recomendada a especificação de quais hosts confiáveis poderão acessar o serviço, ao invés de expô-lo a qualquer um, como fizemos neste tutorial.
Espero que ajude. Até mais!