Qual é a maneira preferida de configurar o Wildfly 10.0.0 Final para escutar na porta 80 no Ubuntu 14.04.4 LTS?

2

Eu instalei o Wildfly 10.0.0 Final no Ubuntu 14.04.4 LTS usando este script .

Tudo parece funcionar bem.

Meu problema é que o wildfly está escutando na porta 28080 (padrão de instalação do script) e posso mudar para 8080 atualizando standalone.xml. Mas eu gostaria de ouvir wildfly na porta 80, mas mudar o standalone.xml para usar a porta 80 não funciona.

Parece que apenas o root pode escutar portas menores que 1024, então, a questão é, qual é a maneira preferida de configurar o Wildfly nos servidores Ubuntu para escutar na porta 80?

Eu tentei usar o nginx e funciona, mas o estranho é que alguns arquivos, como o css da home page padrão do jboss, não podem ser encontrados.

    
por GarouDan 26.07.2016 / 20:54

3 respostas

5

O wiki do JBoss em developer.jboss.org lista uma lista bastante abrangente de opções que provavelmente também são válidas para o Wildfly ; essencialmente variações de:

  • Mantenha o servidor de aplicativos em uma porta não-privilegiada e use algo que escute na porta privilegiada para encaminhar solicitações para essa porta:
    • i.e. um proxy reverso ou balanceador de carga
    • i.e. configurar o encaminhamento de porta

Essas duas parecem ser as opções mais comuns e bastante preferidas.

Alternativas são:

  • Inicie o servidor de aplicativos como raiz para vincular-se à porta privilegiada (não realmente seguro e uma Idéia ruim TM )
  • Inicie o servidor de aplicativos como raiz para vincular-se à porta privilegiada e, em seguida, descartar privilégios e executá-los como usuário regular sem privilégios, para os quais não encontrei prontamente suporte documentado.

E por último, mas não menos importante, meu favorito pessoal:

  • Use setcap para permitir que o próprio binário java seja < href="http://man7.org/linux/man-pages/man7/capabilities.7.html"> capacidade de vincular-se a portas privilegiadas, sem o requisito de estar em execução como root :

    sudo setcap 'cap_net_bind_service=+ep' /path/to/jre/bin/java

A única desvantagem é que fazer isso é um pouco obscuro, mas você também não tem dependências externas para o seu aplicativo.

    
por 26.07.2016 / 21:48
1

Sim, a configuração de Nginx para atuar como um proxy reverso na frente do wildfly é a maneira preferida de IMHO. Há um guia de implantação na página inicial do Nginx sobre como configurar naquela.

    
por 26.07.2016 / 21:09
1

Uma das maneiras recomendadas para "alcançar" seus aplicativos implantados no WildFly pela porta 80 é usar um servidor HTTP Apache que atua como proxy reverso usando:

a) mod_proxy que é a maneira mais simples se você não tem experiência como sysadmin, você pode usar HTTP (mod_proxy_http) ou AJP (mod_proxy_ajp) no WildFly. Para cenários de balanceador de carga, você também usa o mod_proxy_balancer.

b) mod_jk um pouco mais complexo para configuração e AJP, geralmente não é necessário O Apache 2.2+ vem com o mod_proxy_ajp.

c) mod_cluster , mais complexo, mas tem recursos interessantes para cenários de balanceamento de carga, ele usa o mod_proxy atrás de cenas.

Você pode usar muitos outros proxys reversos por aí, como nginx ou haproxy se desejar.

Outra abordagem é usar o encaminhamento de porta do iptables:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

Os desenvolvedores do WildFly recomendam usar algo assim, pois o Undertow é muito rápido.

    
por 26.07.2016 / 22:18