Múltiplas Instancias do Tomcat no servidor

Olá a todos.

Eu comprei uma VPS em um serviço de hospedagem e gostaria de instalar o Tomcat/JDK nela de modo que, para cada conta de hospedagem, tenha um tomcat independente dos outros.
Já procurei em diversos foruns/artigos, mas nenhum deles é direcionado para servidores desse tipo (hospedagem).

Exemplificando:
Digamos que eu tenha 3 domínios no meu servidor (www.exemplo1.com.br, www.exemplo2.com.br, www.exemplo3.com.br), para cada domínio, eu quero que tenha uma instancia do tomcat independente das outras, onde se possa dar startup ou shutdown sem afetar as outras.
Gostaria também de saber como fazer pra configurar todas estas instancias pra que possam ser acessadas na porta 80 do navegador sem ter que colocar ex: www.exemplo1.com.br:8080, sem que causem conflitos com as outras instancias. Lembrando que nesse servidor, também roda o Apache normal, mas quero que este continue funcionando de modo que subdomínios destes domínios rodem no apache se assim for especificado, sem também ter a necessidade de explicitar a porta.

Se alguém puder me ajudar a configurar desta maneira, eu agradeço.

Obrigado.

Pra instalar múltiplas instâncias:

  • Se for windows, o instalador do tomcat 7 permite instalar vários serviços, basta mudar o nome do serviço e a porta.
  • Se for linux, não tem muito segredo, dá uma olhada nos links:

http://www.openlogic.com/wazi/bid/188102/How-to-Run-Multiple-Instances-of-Tomcat-on-a-Single-Server


http://www.ramkitech.com/2011/07/running-multiple-tomcat-instances-on.html
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2014154

Para não digitar a porta ao acessar, vc precisa colocar os tomcats atrás do Apache (o servidor http) e cria um vhost pra cada um. Veja os links:

http://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html
http://httpd.apache.org/docs/2.2/vhosts/examples.html

Qqer dúvida é só falar.

A primeira parte eu consegui fazer tranquilamente, já a segunda estou com um certo problema…

A minha VPS para cada usuário criada pelo WHM, ele gera o cPanel e cria o VirtualHost no httpd.conf do Apache geral da máquina.

Minha dúvida é a seguinte, eu ira adicionar os ProxyPass dentro do bloco do VirtualHost?

Outra coisa é que no meu apache não tem instalado o módulo “mod_proxy”, como faço pra instalar só o módulo sem ter que reinstalar o apache?

Obrigado e aguardo resposta.


PS: A versão do linux é a RedHat 4.~~

Exato. Algo como

<VirtualHost *:80>
    ServerName www.bla.com

    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    DocumentRoot /var/www/....
    <Directory /var/www/....>
       ... opcoes do diretório
    </Directory>
</VirtualHost>

Vc o apache instalou por pacote RPM ou compilou?

Não manjo muito de Redhat, mas acho que o mod_proxy já vem no pacote rpm do apache. Pra conferir vc pode usar (como root)

find / -name mod_proxy.so
locate mod_proxy.so

Se encontrar o arquivo, é só habilitar no arquivo de configuração (httpd.conf), colocar algo como

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Espero que ajude :). Qualquer coisa é só falar.

Eu dei o find no mod_proxy.so, porém ele não encontrou nada.

Na pasta “/usr/local/apache/include” eu encontrei o mod_proxy.h, porém acredito que não é esse que se deve usar.
Na pasta “/usr/local/apache/modules” que estão os .so, não tem o mod_proxy.so

Como faço a partir daí?

Obrigado e aguardo resposta.

Eu estava procurando e testando… quando coloquei o LoadModule mesmo sem ter o módulo no diretório, ele ficou dando um erro quando ia restartar o apache:
httpd: Syntax error on line 241 of /usr/local/apache/conf/httpd.conf: module proxy_module is built-in and can’t be loaded

Então tirei o LoadModule e usei o módulo normalmente, e ele pegou! :smiley:

Porém está dando o seguinte erro quando restarto o apache:
[Tue Sep 18 18:43:34 2012] [warn] NameVirtualHost :80 has no VirtualHosts

Onde é o IP da máquina. (eu não coloquei aqui por questões de segurança)

Saberia dizer o que poderia ser?


Outra dúvida…
Seria possível que esse ProxyPass não direcionasse quando o cara pro tomcat quando ele digitar “www.meudominio.com.br/cpanel” ?

Obrigado e aguardo resposta.

Experimenta adicionar o seguinte antes dos VirtualHosts:

NameVirtualHost *:80

Vc pode configurar o tomcat pra ele redirecionar automaticamente pra uma app. Dá uma olhada nesse link: