Apache HTTP server e Tomcat, o HowTo fácil sem o mod_jk

Apache HTTP server e Tomcat, o HowTo fácil sem o mod_jk
peas
peas

Compartilhe

Migramos os nossos sitemas do servidor compartilhado da locaweb para um servidor dedicado, porém enfrentamos o clássico problema: responder php e java na mesma porta de acordo coma URL. O nosso blog é gerenciado pelo wordpress, que precisa do PHP, já os nossos outros serviços precisam de Java 5 e tomcat 5.5.

Eu e o Guilherme Moreira somos apenas usuários comuns do linux, sem conhecimentos avançados. Para piorar estamos acostumados com o debian, e o servidor novo é um fedora. Tentamos fugir do apache http server (daqui em diante referido apenas como apache) e mais ainda do mod_jk.

A vantagem de usar o mod_jk é que o apache poderia servir o conteúdo estático das nossas web applications, mas já sabemos a algum tempo que o tomcat e o apache têm performance muito parecida quando estão servindo arquivos estáticos (htmls e imagens, por exemplo).

Banner promocional da Alura, com chamada para um evento ao vivo no dia 12 de fevereiro às 18h30, com os dizeres

Corremos então atrás de alternativas mais simples, no meio do caminho encontramos soluções estranhas que não gostamos, e a melhor a que chegamos foi usar o mod_proxy.

Vamos então a um tutorial bem sucinto para essa instalação em qualquer distribuição linux, omitindo qualquer detalhe sobre descompactação e download de arquivos básicos. Caso você queira instalar tudo isso no windows, só que com o mod_jk, você pode acessar o excelente howto de 15 minutos que o Diego Plentz criou.

Baixe os fontes do Apache 2.2 e configure o build com o que precisamos (mod_rewrite para o wordpress): ./configure—prefix=/usr/local/apache —enable-rewrite \ —enable-shared=max \ —enable-so \ —enable-proxy

Você poderia adicionar outros módulos. Agora basta o make e o make install.

Vamos ao PHP, baixe o fonte e configure o build: ./configure—prefix=/usr/local \ —enable-xslt \ —with-apxs2=/usr/local/apache/bin/apxs \ —with-mysql=/usr/bin/mysql_config

make e o make install aqui também.

Pronto. Considere que o diretório /var/www/blog.caelum.com.br possui o nosso wordpress. No seu /usr/local/apache/conf (ou diretório similar) edite o httpd.conf e permita o acesso aos arquivos do diretório do wordpress: ```xml <Directory /var/www/blog.caelum.com.br> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all



Crie a associação de `blog.caelum.com.br` para o diretório `/var/www/blog.caelum.com.br`:

``[xml] <VirtualHost *:80> ServerName blog.caelum.com.br DocumentRoot /var/www/blog.caelum.com.br </VirtualHost> [/xml]

Já, os outros sites que você quiser que sejam servidor pelo tomcat, você vai configurar o apache para agir como proxy, e delegar todas as requisições, e configuramos também para que ele tome o cuidado de reescrever alguns headers para que, por exemplo, não volte uma resposta com redirect para uma URL na porta 8080: [xml] <VirtualHost *:80> ServerName www.caelum.com.br ServerAlias caelum.com.br www.caelum.com.br ProxyPass / http://caelum.com.br:8080/ ProxyPassReverse / http://caelum.com.br:8080/ </VirtualHost> [/xml]

Aí no seu server.xml do tomcat, basta direcionar o _host_ caelum.com.br: [xml] <Host name="caelum.com.br" appBase="/xxx/yyy/webapps/caelum.com.br" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>www.caelum.com.br</Alias> </Host> [/xml]

Pronto! Muito simples para até para que é apenas usuário do linux. E bem mais fácil que com o `mod_jk`! Agora tudo parece estar rodando corretamente, com [apenas um probleminha ou outro](http://guj.com.br/posts/list/42117.java). Fica aí a receita de bolo para quem precisar, qualquer sugestão é muito bem vinda!``

Veja outros artigos sobre Programação