Receita Apache / Glassfish para executar vários aplicativos em um único host

1

Estou tentando configurar o Apache + Glassfish para que eu possa acessar dois aplicativos web diferentes no mesmo host físico, diferenciado pelo nome do host na URL.

Portanto, se eu visitar o link , receberei app1 . Se eu visitar o link , receberei app2 . host1 e host2 resolvem o mesmo endereço IP.

Eu consegui fazer isso funcionar de uma maneira básica com os servidores virtuais mod_proxy e Glassfish usando este guia . Mas o usuário ainda precisa especificar a raiz de contexto para um dos aplicativos, por exemplo, http://host1.com/app1 .

Como posso configurar as coisas para que os dois aplicativos apareçam como "raiz" em seus respectivos URLs?

Preciso de dois domínios separados do Glassfish?

Aqui está a configuração do apache que estou usando:

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:8080/app1
     ProxyPassReverse / http://localhost:8080/app1
     ServerName host1.com
</VirtualHost>

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:8080/
     ProxyPassReverse / http://localhost:8080/app2
     ServerName host2.com
</VirtualHost>
    
por Caffeine Coma 02.07.2011 / 04:08

1 resposta

1

Eu estava perto. Veja o que acabou funcionando:

Crie um segundo domínio:

  • $ asadmin create-domain --portbase 5000 - mydomain de desenvolvedor de perfil
  • $ asadmin start-domain mydomain

Implemente os dois aplicativos na raiz de contexto em seus respectivos domínios. Você especifica o domínio, dando a porta de administrador:

  • $ asadmin deploy --contextroot "/" target / app1.war # domain1
  • $ asadmin deploy --contextroot "/" --port 5048 target / app2.war # mydomain

O novo domínio será executado na porta 5080, então configure o mod_proxy para usá-lo:

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:8080/
     ProxyPassReverse / http://localhost:8080/
     ServerName host1.com
</VirtualHost>

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:5080/
     ProxyPassReverse / http://localhost:5080/
     ServerName host2.com
</VirtualHost>
    
por 02.07.2011 / 04:38