A opção 1 é possível, mas, como você previu corretamente, não é uma abordagem preferencial. Para rodar na porta 80 ou 443, você precisa de um usuário privilegiado e está expondo diretamente o servidor java ao público, facilitando a entrada em problemas.
Então abra o nginx, defina os domínios lá e configure upstream
e proxy_pass
para o proxy reverso em suas instâncias do wildfly. Você obtém loadbalancing de graça, você pode manipular ssl em nginx em vez de wildfly e toda a configuração é muito mais fácil de manter e escalar. Você pode configurar um cluster dedicado de wildfly para cada domínio e ter uma definição upstream
separada, ou você pode começar com uma única instância com webcontextts separados, por exemplo,
upstream jboss {
server 192.168.33.11:8080;
}
server {
listen 443;
server_name example.com;
location / {
proxy_pass http://jboss/webapp1;
}
}
server {
listen 443;
server_name otherdomain.com;
#pass the request to another .war dewployed on jboss
location / {
proxy_pass http://jboss/webapp2;
}
}
Você pode encontrar mais informações no site nginx