TomcatVirtualHost

De Serverjeiro Wiki
Ir para: navegação, pesquisa

Nesse tutorial, vamos fazer o apache responder virtualhost como se fosse o apache rodando a porta 80.
Convenção
ip = 192.168.43.188 (imaginário)
aplicacao = nome de uma aplicação no tomcat
www.dominio.com.br = Dominio que queremos que ele atenda
Versão do tomcat: 7.0
versão do java: 1.6.0_25
SO: Debian Squeeze
CATALINA_HOME=pasta do tomcat gÊnio melhor dizendo gÊno
DNS/hosts = já configurado trocando o ip pelo domínio (hosts no Gnu/Linux /etc/hosts no windows tem lá no /windows/blablablaablabla se vira MUW)


Pra configurar essa badega, primeiro entenda a estrutura do webapss.
Todo tomcat configurado o webapps do localhost, ou seja quando acessamos o 192.168.43.188:8080 aparece aquela parte administrativa. Normalmente quando a gente tem uma aplicação, a gente extrai ela dentro do webapps, e acessamos com a url 192.168.43.188:8080/aplicacao, funciona bem, normalmente colocamos o apache para responder o dominio e fazemos um redir ou usamos iptables fica a cargo de cada um.
Mas e se no servidor, só tivermos o tomcat? fica legal ter mais de um serviço? vale a pena se preocupar com regra de iptables? na minha opinião... não :).

Então chega de papo e mãos a obra.
Primeira coisa, configurar o tomcat para usar a porta 80, parece que em Ubuntu/RedHat e outros, ha uns problemas com isso como não uso essas distros, desconheço, se alguem tiver esse problema e ja souber a solução, manda a informação pra nóis ai mano (serverjeiro@serverjeiro.com.br ou deixe comentário no blog)

   vim $CATALINA_HOME/conf/server.xml

Altere o conteúdo

   <Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />

Para

   <Connector port="80" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />

Restarte o tomcat e pronto, ele vai estar na porta 80 (Caso você seja um gẼnio; melhor dizendo gÊno da informática e tentar levantar o tomcat na porta 80 com o apache rodando, e me perguntar o porque não funcionou .... me faça um favor, vá administrar servidores windows, seu MUW desgraçado ¬¬, obrigado :)


Agora o pulo do gato, configurar o VirtualHost direto no tomcat.
Adicione a seguinte linha no seu serer xml, dentro da configuração da ENGINE (pode por em cima do localhost caso tenha duvida)

   <Host appBase="aplicacao" name="www.dominio.com.br"/>

Lembra que o webapps é a raiz?? deu uma analisada no localhost? "<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> "
Não né, mas então, agora crie dentro de sua $CATALINA_HOME a pasta da sua aplicação e a pasta ROOT. Demorei pra descobrir que é na pasta root que fica sua aplicação (no meu caso site)

   mkdir -p $CATALINA_HOME/aplicacao/ROOT

O root é onde vai a aplicação por exemplo, não conheço a fundo a estrutura do TOMCAT suficiente para dar uma explicação descente, e também to com preguiça de pesquisar, isso é um wiki e toda ajuda é bem vinda caso alguém saiba, ja sabe email pra serverjeiro@serverjeiro.com.br ou deixe um comentário

E pronto, a coisa esta feita e apenas com tomcat.


Dica pra otimizar: adicione essas linhas na engine do Conector de

   <Connector port="80" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />

para

   <Connector port="80" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata"
              compressableMimeType="text/html,text/xml,text/plain,application/javascript,application/json" />


MUW = Maldito Usuário de Windows

referencia: http://tomcat.apache.org/tomcat-7.0-doc/virtual-hosting-howto.html

Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Kernel
Hardware
Aplicações
Serviços
Sistemas
Criptografia
Dicas
Programaçao
SQL (comandos)
Ferramentas