Implementando servidor web Java com Tomcat no Linux

Este documento tem como propósito explicar todos os processos de instalação e configuração do Tomcat no Linux, bem como explicar alguns conceitos de manipulação do ambiente Java no Linux. Com este documento usuários e profissionais da área de TI terão condições de implementar soluções para aplicações Java que utilizam da web para o seu pleno funcionamento.

[ Hits: 128.066 ]

Por: José Cleydson Ferreira da Silva em 13/11/2009


Configurando o servidor



5.2. Configurando o servidor

Existem diversas formas de configurar o servidor. Embora seja interessante ou até mesmo necessário que saibamos todas as opções de configuração, não é o objetivo deste documento apresentar todas as opções, mas sim uma configuração básica essencial para o funcionamento.

O arquivo de configuração do servidor encontra-se no mesmo diretório da configuração do usuário. O arquivo referente à configuração do servidor chama-se server.xml; nele pode-se configurar quais portas serão utilizadas para a conexão, o protocolo e o redirecionamento de portas, dentre outros. Essas opções, por padrão, já vêm configuradas.

Quando usamos uma aplicação compactada, ou seja, em arquivo.war, é necessário fazer a configuração da tag <host> para que ela não seja descompactada ao ser instalada. Com isso é preciso configurar o atributo unpackWARs para receber o valor false; assim, ao ser reconhecida pelo programa (Tomcat) ela não será descompactada. O item 1 do exemplo 3 exibe a configuração desta tag. A utilização da extensão do arquivo war não é uma convenção - você poderá utilizá-la em modo descompactado, porém pode estar exposto a alguns erros. Caso escolha utilizá-la como subdiretório, poderá copiar o diretório da aplicação (contexto) para o diretório /opt/tomcat6/webapps.

Na tag <connector> podemos configurar a porta de conexão, que por padrão é a porta 8080, juntamente com o protocolo, tempo de conexão com servidor e redirecionamento de portas, dentre outras opções. Existem basicamente três tipos de conectores: o HTTP, que responde a requisições na porta 8080, o AJP, que abre conexão com o apache web server na porta 8009 e o HTTPS, que se refere à conexão segura utilizando certificado digital.

Pode-se configurar o servidor para fazer autenticação em um servidor LDAP, bastando, para isto, configurar o server.xml. Dentro da tag <Engine> pode-se configurar a tag <Realm>, sendo necessário acrescentar atributos relacionados com a url de conexão do servidor e informações de usuários, bem como usuário, papel do usuário, dentre outros.

Caso haja necessidade de configuração para autenticação com LDAP, o trecho 3 do exemplo 3 pode ser usado.

Exemplo 3:

Trechos de configuração do arquivo server.xml:

1. Tag <host>:

<Host name="localhost" appBase="webapps"
  unpackWARs="false" autoDeploy="true"
  xmlValidation="false" xmlNamespaceAware="false">

2. Tag Connector:

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

3. Autenticação com LDAP:

<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionURL="ldap://[LDAP-HOST]:389"
   userBase="dc=uf??,dc=br"
   userRoleName="ObjectClass"
   userSearch="uid={0}"
   userSubtree="true"
   roleName="objectClass"/>

5.3. Configurando o contexto

Toda aplicação desenvolvida a ser instalada no Tomcat necessita de uma configuração em um arquivo web.xml, que se encontra dentro do subdiretório /WEB-INF da aplicação. Podemos configurar dentro desse arquivo as descrições dos aplicativos e sua exibição, bem como o path, Display Name, sessões, dentre outras configurações.

A configuração deste arquivo pode ser feita manualmente ou automaticamente, se usada a aplicação manager web do Tomcat (http://localhost:8080/manager/html). Geralmente, a instalação automática, por padrão, poderá fazer algum tipo de configuração; mesmo tendo isso a favor, pode-se configurá-lo conforme as indicações. Ao desenvolver a aplicação, é necessário criar um arquivo web.xml dentro do subdiretório /WEB-INF da aplicação. Ele poderá possuir o mínimo de configuração, contendo somente o tipo de charset, podendo ser UTF-8, que é padrão do sistema operacional Linux.

Para melhorar a configuração da aplicação, deve-se abrir uma tag <web-app> para colocar os atributos que poderão configurá-la, pois, por padrão, ao colocar uma aplicação no diretório /opt/tomcat6/webapps, o Tomcat define o path, sendo preciso somente configurar a exibição do nome da aplicação que, para isso, configura o atributo <display-name> apontando o nome e uma descrição da aplicação com o atributo <description>. Veja no exemplo 4 um modelo de configuração deste arquivo e na figura abaixo o resultado da configuração.

Exemplo 4:

Configuração do web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Aplication 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<display-name> Sistema de Teste (Artigo) </display-name>
   <description>
      Exemplo de Arquivo web.xml.
   </description>

</web-app>

5.4. Configurações fundamentais

Outra configuração importante é a configuração do uso de memoria RAM da máquina virtual no Tomcat (que como sabemos, é inteiramente desenvolvido em Java) sua interpretação se dá por meio da máquina virtual Java, que, por sua vez, fará o uso da memória exigindo um valor mínimo de 64MB por padrão - mas caso essa aplicação realize um número elevado de acessos a um banco de dados, poderá comprometer o serviço fazendo com que o processamento do servidor atinja o máximo do seu uso. Quando esse fato chega a acontecer, geralmente ocorrem erros de interpretação da maquina virtual java e perda do PATH, ocorrendo erros de interpretação do $JAVA_HOME - Variável de ambiente -. Para isso, precisamos configurar a JVM (Maquina Virtual).

Essa configuração deve ser feita no arquivo catalina.sh, que se encontra no diretório /opt/tomCat6/bin. A sintaxe dos comandos a serem acrescentados neste arquivo estão mencionados no exemplo 5 item 1. O parâmetro -Xmx768M indica a quantidade de memória que a JVM (Máquina Virtual Java) irá usar. O parâmetro -XX:MaxPermSize=256M indicará ao Tomcat a quantidade de memória RAM disponível a ele e os outros são para configuração de hora, linguagem e referência de fuso-horário. É importante lembrar que essa sintaxe deve ser adicionada após os comentários iniciais do arquivo, antecedendo os primeiros comandos do script.

Essa configuração refere-se a uma quantidade de 1GB no total, que um computador esteja porventura usando; caso tenha mais que essa quantidade ou menos, siga a seguinte orientação: usar 3/4 da capacidade da memória RAM para o parâmetro -Xmx768M e 1/4 para -XX:MaxPermSize=256M.

Outra observação importante que precisa ser colocada é a ausência do driver JDBC dentro da pasta lib do Tomcat. Caso deixe de colocar o driver nesta pasta, sua aplicação não conseguirá fazer uma consulta ou rotina na base de dados. O driver JDBC é responsável por todas as rotinas de interação com bases de dados relacionais.

Cada Sistema de Gerenciamento de Bando de Dados - SGBD - possui um driver JDBC que pode ser encontrado no site oficial da Sun (http://devapp.sun.com/product/jdbc/drivers) ou no próprio site do SGBD que está usando.

Os arquivos de configuração que ajudaram na elaboração deste documento estão disponíveis no site www.vivaolinux.com, na sessão conf. Para melhor acompanhamento na elaboração ou no teste de configuração os arquivos podem ser consultados ou baixados no seguinte link:
Caso tenha necessidade de uma aplicação JSP para testar os procedimentos descritos neste documento, também está disponível no site www.vivaolinux.com.br, uma aplicação simples desenvolvida por Hermes Júnior - hnpjunior - para teste deste documento. O download pode ser feito no link abaixo.
Ao fazer o download do arquivo sistemaExibeJSTL.tar.gz, deverá copiá-lo para o diretório /opt/tomcat6/webapps e descompactá-lo, usando o comando:

# tar -xvzf sistemaExibeJSTL.tar.gz

Para acessar a aplicação, direcione o navegador para a seguinte url:

http://localhost:8080/sistemaExibeJSTL/paginas
Exemplo 5:

Configurações gerais:

1. Configuração de memória da Máquina Virtual Java:

CATALINA_OPTS="-Xmx768M -XX:MaxPermSize=256M -Duser.timezone=America/Sao_Paulo -Duser.language=pt -Duser.country=BR"

Considerações finais

Sobre o autor:

José Cleydson Ferreira da Silva, graduando em Sistemas de Informação - Faculdade de Viçosa-MG. Usuário do Linux por filosofia, acredita que o Software Livre e de Código Aberto podem mudar a forma e o modelo de mercado atual.

Referência bibliográfica


Página anterior    

Páginas do artigo
   1. Sumário
   2. Configurando Java e procedimentos para a instalação do Tomcat
   3. Diretório e subdiretórios do Tomcat
   4. Configurando usuários
   5. Configurando o servidor
Outros artigos deste autor

Bing: Medindo velocidade da conexão no Linux

Bioinformática - PhyML: alinhamento de sequências nucleotídicas em ambiente paralelo

Compiz e as estações do ano

Implementando rotas estáticas no Linux com route

O comando LS de A a Z

Leitura recomendada

Inkscape - Introdução (parte 1)

Traduzindo software com qualidade

Kommander & KDialog

SystemRescueCd - Corrigindo o sistema e recuperando dados

Monitorando servidores (Windows e Linux)

  
Comentários
[1] Comentário enviado por walber em 13/11/2009 - 07:21h

Muito bom, parabéns.

[2] Comentário enviado por cogitas3d em 13/11/2009 - 09:37h

Maravilha de documento, uma mão na roda para quem precisa.

COntrubuição louvável, parabéns!

[3] Comentário enviado por vagner.ribeiro em 13/11/2009 - 13:39h

Ótimo artigo, muito esclarecedor para qualquer um que precise implementar um servidor web java. Parabéns.

[4] Comentário enviado por marcosrlopes em 13/11/2009 - 15:10h

Ficou muito bom, bem explicadinho. Parabéns!!! Vou testar.

[5] Comentário enviado por grandmaster em 16/11/2009 - 06:35h

Como falado, bem explicado. Muito bom artigo.
---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[6] Comentário enviado por hhebinho em 16/11/2009 - 10:14h

Excelente artigo. Bem detalhado.Tenho certeza que será muito útil para os administradores IFES. Vamos divulgar. Parabéns!!!

Heber
Analista PingIFES

[7] Comentário enviado por cfarah em 16/11/2009 - 10:38h

Aí cara, gostei muito do teu artigo, foi muito detalhista, muito bom para tirar dúvidas de usuários avançados como para auxiliar na intalação de usuário mais básicos, vai ser altamente util para nossas IFES, pois o famoso PingIFES depende do Tomcat, sendo assim sempre será conferido....

Vlw e parabéns pela iniciativa.

[8] Comentário enviado por androdana em 08/12/2010 - 09:05h

Bom dia amigo, parabéns pelo artigo, muito bom... Gostaria de tirar uma dúvida, vc disse que a regra era 3/4 de linux da ram para XMX e 1/4 para maxPermSize, tenho um servidor com 8G e preciso utiliza-lo ao máximo, existe a possibilidade do tomcat gerenciar 6G de XMX e 2 de MaxPerm?

[9] Comentário enviado por cleysinhonv em 09/12/2010 - 08:17h

Ola Rodrigo Andrade.

Olha ńão aconselho você usar toda a memoria para a maquina virtual java, pois por padrão ela já esta usando o máximo que poder. Tive uma experiência ruim aqui a respeito dessa configuração. Eu dediquei todo o potencial do computador para a maquiana virtua javal e me esqueci do sistema operacional. Acredito que seia interessante desses 8 GB deixasse 7,5 para a JVM e tomcat e o sistema operacional livre com 512 MB. Para que não haja choro e rarnger de dentes. Meu problema foi justamente esse, e isso aconteceu aos 48 do segundo tempo.

Espero ter ajudado.

Um abraço!

[10] Comentário enviado por rogerio_gentil em 19/04/2011 - 17:09h

Ótimo artigo... bem escrito, com bastante detalhes.

A instalação do Tomcat por meio de repositórios é uma péssima ideia para quem for montar um ambiente de desenvolvimento. Pelo menos, para mim foi. Tive criar diversos links simbólicos para os arquivos de configuração que ficaram espalhados, e o Netbeans não conseguia identificar todos eles. Além do mais, iniciar/reiniciar/parar o servidor pela IDE exigia que fosse como usuário comum. Resolvi tudo isso instalando o Tomcat por tar.gz.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts