Introdução

O Apache Tomcat é um servidor web e um servlet container que é usado para servir aplicações Java. O Tomcat é uma implementação open source das tecnologias Java Servlet e JavaServer Pages, lançada pela Apache Software Foundation. Este tutorial aborda a instalação básica e algumas configurações da versão mais recente do Tomcat 9 no seu servidor Debian 10.

Pré-requisitos

Antes de começar com este guia, você deve ter um usuário não-root com privilégios sudo configurados no seu servidor. Você pode aprender como fazer isso completando nosso guia Debian 10 initial server setup.

Passo 1 — Instale o Java

O Tomcat exige que o Java seja instalado no servidor para que qualquer código de aplicação web Java possa ser executado. Podemos satisfazer esse requisito instalando o OpenJDK com o apt.

Primeiro, atualize seu índice de pacotes apt:

  • sudo apt update

Em seguida, instale o pacote Java Development Kit com o apt:

  • sudo apt install default-jdk

Agora que o Java está instalado, podemos criar um usuário tomcat, que será usado para executar o serviço Tomcat.

Passo 2 — Crie um Usuário Tomcat

Por motivos de segurança, o Tomcat deve ser executado como um usuário sem privilégios (ou seja, não root). Criaremos um novo usuário e grupo que executará o serviço Tomcat.

Primeiro, crie um novo grupo tomcat:

  • sudo groupadd tomcat

Em seguida, crie um novo usuário tomcat. Tornaremos esse usuário um membro do grupo tomcat, com um diretório home /opt/tomcat (onde instalaremos o Tomcat) e com um shell /bin/false (para que ninguém possa fazer login na conta):

  • sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Agora que nosso usuário tomcat está configurado, faça o download e instale o Tomcat.

Passo 3 — Instale o Tomcat

A melhor maneira de instalar o Tomcat 9 é baixar a versão binária mais recente e configurá-la manualmente.

Encontre a versão mais recente do Tomcat 9 na página de downloads do Tomcat 9. No momento da redação deste documento, a versão mais recente é a 9.0.27, mas você deve usar a última versão estável, se estiver disponível. Na seção Binary Distributions e, em seguida, na lista Core, copie o link que aponta para o “tar.gz”.

Em seguida, retorne à sua sessão SSH e vá para o diretório /tmp no seu servidor. Este é um bom diretório para baixar itens efêmeros, como o tarball do Tomcat, que não precisaremos depois de extrair o conteúdo do Tomcat:

  • cd /tmp

Usaremos a ferramenta de linha de comando curl para baixar o tarball. Instale o curl:

  • sudo apt install curl

Agora, use o curl para baixar o link que você copiou do site do Tomcat:

  • curl -O http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz

Vamos instalar o Tomcat no diretório /opt/tomcat. Crie o diretório e extraia o arquivo tar com estes comandos:

  • sudo mkdir /opt/tomcat
  • sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

Em seguida, configuraremos as permissões de usuário adequadas para nossa instalação.

Passo 4 — Atualize as Permissões

O usuário tomcat que criamos precisa ter acesso à instalação do Tomcat. Vamos configurar isso agora.

Mude para o diretório em que desempacotamos a instalação do Tomcat:

  • cd /opt/tomcat

Conceda ao grupo tomcat a propriedade de todo o diretório de instalação:

  • sudo chgrp -R tomcat /opt/tomcat

A seguir, dê ao grupo tomcat acesso de leitura ao diretório conf e a todo o seu conteúdo e acesso de execução ou execute ao diretório em si:

  • sudo chmod -R g+r conf
  • sudo chmod g+x conf

Faça do usuário tomcat o proprietário dos diretórios webapps, work, temp e logs:

  • sudo chown -R tomcat webapps/ work/ temp/ logs/

Agora que as permissões apropriadas foram configuradas, criaremos um arquivo de serviço systemd para gerenciar o processo do Tomcat.

Passo 5 — Crie um Arquivo de Serviço systemd

Queremos poder executar o Tomcat como um serviço, portanto, configuraremos o arquivo de serviço systemd.

O Tomcat precisa saber onde o Java está instalado. Esse caminho é geralmente chamado de JAVA_HOME. A maneira mais fácil de procurar esse local é executando este comando:

  • sudo update-java-alternatives -l
Output
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64

Seu JAVA_HOME é a saída da última coluna (destacada acima). Dado o exemplo acima, o JAVA_HOME correto para este servidor seria:

JAVA_HOME
/usr/lib/jvm/java-1.11.0-openjdk-amd64

Seu JAVA_HOME pode ser diferente.

Com essa informação, podemos criar o arquivo de serviço systemd. Abra um arquivo chamado tomcat.service no diretório /etc/systemd/system digitando:

  • sudo nano /etc/systemd/system/tomcat.service

Cole o seguinte conteúdo no seu arquivo de serviço. Modifique o valor de JAVA_HOME se necessário para corresponder ao valor encontrado em seu sistema. Você também pode querer modificar as configurações de alocação de memória especificadas em CATALINA_OPTS:

/etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Quando terminar, salve e feche o arquivo.

Em seguida, recarregue o daemon systemd para que ele conheça nosso arquivo de serviço:

  • sudo systemctl daemon-reload

Inicie o serviço Tomcat digitando:

  • sudo systemctl start tomcat

Verifique se ele foi iniciado sem erros digitando:

  • sudo systemctl status tomcat

Você deve ver uma saída semelhante à seguinte:

Output
● tomcat.service - Apache Tomcat Web Application Container Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2019-10-24 17:18:11 UTC; 4s ago Process: 5962 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5970 (java) Tasks: 44 (limit: 2377) Memory: 184.2M CGroup: /system.slice/tomcat.service └─5970 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.u Oct 24 17:18:10 tomcat systemd[1]: Starting Apache Tomcat Web Application Container... Oct 24 17:18:11 tomcat startup.sh[5962]: Tomcat started. Oct 24 17:18:11 tomcat systemd[1]: Started Apache Tomcat Web Application Container.

Isso confirma que o Tomcat está funcionando no seu servidor.

Passo 6 — Ajuste o Firewall e Teste o Servidor Tomcat

Agora que o serviço Tomcat foi iniciado, podemos testar para garantir que a página padrão esteja disponível.

Antes de fazermos isso, precisamos ajustar o firewall para permitir que nossas solicitações cheguem ao serviço. Se você seguiu os pré-requisitos, terá um firewall ufw ativado no momento.

O Tomcat usa a porta 8080 para aceitar solicitações. Permita tráfego para essa porta digitando:

  • sudo ufw allow 8080

Com o firewall modificado, você pode acessar a página inicial padrão acessando seu domínio ou endereço IP, seguido de :8080 em um navegador web:

Open in web browser
http://domínio_do_servidor_ou_IP:8080

Você verá a página inicial padrão do Tomcat, além de outras informações. No entanto, se você clicar nos links do App Manager, por exemplo, seu acesso será negado. Podemos configurar esse acesso a seguir.

Se você conseguiu acessar o Tomcat com êxito, agora é uma boa hora para ativar o arquivo de serviço, para que o Tomcat seja iniciado automaticamente na inicialização:

  • sudo systemctl enable tomcat

Passo 7 — Configure a Interface Web de gerenciamento do Tomcat

Para usar a aplicação web de gerenciamento que acompanha o Tomcat, precisamos adicionar um login ao nosso servidor Tomcat. Faremos isso editando o arquivo tomcat-users.xml:

  • sudo nano /opt/tomcat/conf/tomcat-users.xml

Você vai querer adicionar um usuário que possa acessar a manager-gui e a admin-gui (aplicações web que acompanham o Tomcat). Você pode fazer isso definindo um usuário, semelhante ao exemplo abaixo, entre as tags tomcat-users. Certifique-se de alterar o nome de usuário e a senha para algo seguro:

tomcat-users.xml
<tomcat-users>
. . .
    <user username="admin" password="senha" roles="manager-gui,admin-gui"/>
</tomcat-users>

Salve e feche o arquivo quando terminar.

Por padrão, as versões mais recentes do Tomcat restringem o acesso às aplicações Manager e Host Manager a conexões provenientes do próprio servidor. Como estamos instalando em uma máquina remota, você provavelmente desejará remover ou alterar essa restrição. Para alterar as restrições de endereço IP, abra os arquivos context.xml apropriados.

Para a aplicação Manager, digite:

  • sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml

Para a aplicação Host Manager, digite:

  • sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

Dentro dele, comente a restrição de endereço IP para permitir conexões de qualquer lugar. Como alternativa, se você deseja permitir acesso apenas a conexões provenientes de seu próprio endereço IP, você pode adicionar seu endereço IP público à lista:

context.xml files for Tomcat webapps
<Context antiResourceLocking="false" privileged="true" >
  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>

Salve e feche os arquivos quando terminar.

Para efetivar nossas alterações, reinicie o serviço Tomcat:

  • sudo systemctl restart tomcat

Passo 8 — Acesse a Interface Web

Agora que criamos um usuário, podemos acessar a interface de gerenciamento web novamente em um navegador. Mais uma vez, você pode acessar a interface correta digitando o nome de domínio ou endereço IP do servidor seguido da porta 8080 no seu navegador:

Open in web browser
http://domínio_do_servidor_ou_IP:8080

A página que você vê deve ser a mesma que você recebeu quando testou anteriormente:

Tomcat root

Vamos dar uma olhada no App Manager, acessível através do link ou http://nome_de_dominio_do_servidor_ou_IP:8080/manager/html. Você precisará inserir as credenciais da conta que adicionou ao arquivo tomcat-users.xml. Depois, você deverá ver uma página parecida com esta:

Tomcat Web Application Manager

O Web Application Manager é usado para gerenciar suas aplicações Java. Você pode Iniciar, Parar, Recarregar, Deployar e Remover o deploy aqui. Você também pode executar alguns diagnósticos em suas aplicações (ou seja, encontrar vazamentos de memória). Por fim, as informações sobre o seu servidor estão disponíveis na parte inferior desta página.

Agora, vamos dar uma olhada no Host Manager, acessível através do link ou http://nome_de_dominio_do_servidor_ou_IP:8080/host-manager/html/:

Tomcat Virtual Host Manager

Na página do Virtual Host Manager, você pode adicionar hosts virtuais para servir suas aplicações.

Conclusão

Sua instalação do Tomcat está concluída! Agora você está livre para fazer o deploy de suas próprias aplicações web Java.

No momento, sua instalação do Tomcat está funcional, mas está totalmente não criptografada. Isso significa que todos os dados, incluindo itens confidenciais, como senhas, são enviados em texto sem formatação que podem ser interceptados e lidos por terceiros na internet. Para impedir que isso aconteça, é altamente recomendável que você criptografe suas conexões com SSL. Você pode descobrir como criptografar suas conexões com o Tomcat, seguindo este guia (observação: este guia cobre a criptografia do Tomcat 8 no Ubuntu 16.04).

0 Comments

Creative Commons License