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 da Escola de Programação: Matricula-se na escola de Programação. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

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