O Apache Tomcat é uma plataforma de servidor de aplicativos open-source escrita em Java. Ele implementa tecnologias como Servlet, JSP (JavaServer Pages) e EL (Expression Language), permitindo o desenvolvimento de aplicativos web dinâmicos em Java.
Funções do Tomcat
O Tomcat atua como um container de servlets e servidor web, capaz de:
- Processar requisições HTTP/HTTPS
- Executar aplicativos web Java
- Realizar deploy de arquivos WAR
- Gerenciar recursos estáticos
Insatlando o Tomcat
Para usar o Tomcat, é necessário ter o JDK (Java Development Kit) instalado. Neste exemplo, usaremos a versão 8 do JDK e a versão 9.0.50 do Tomcat.
Instalando o JDK 8
[root@tomcat ~]# mkdir -p /app/ ferramentas && cd /app/ferramentas
[root@tomcat /app/ferramentas]# wget https://download.java.net/openjdk/jdk8u44/ri/openjdk-8u44-linux-x64.tar.gz
[root@tomcat /app/ferramentas]# tar -xf openjdk-8u44-linux-x64.tar.gz
[root@tomcat /app/ferramentas]# ln -s /app/ferramentas/java-se-8u44-ri/ /app/ferramentas/jdk
[root@tomcat /app/ferramentas]# ll
[root@tomcat /app/ferramentas]# echo 'export JAVA_HOME=/app/ferramentas/jdk' >> /etc/profile
[root@tomcat /app/ferramentas]# echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
[root@tomcat /app/ferramentas]# source /etc/profile
[root@tomcat ~]# java -version
openjdk version "1.8.0_44"
OpenJDK Runtime Environment (build 1.8.0_44-b02)
OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)
Instalando o Tomcat 9.0.50
[root@tomcat /app/ferramentas]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.tar.gz
[root@tomcat /app/ferramentas]# tar -xf apache-tomcat-9.0.50.tar.gz
[root@tomcat /app/ferramentas]# mv apache-tomcat-9.0.50 tomcat
Iniciando o Tomcat
[root@tomcat /app/ferramentas/tomcat/bin]# ./startup.sh
Tomcat iniciado com sucesso.
[root@tomcat /app/ferramentas/tomcat/bin]# ps -ef | grep java
[root@tomcat /app/ferramentas/tomcat/bin]# ss -lntup | grep 8080
tcp LISTEN 0 100 *:8080 *:* users:(("java",pid=14131,fd=56))
Para testar, acesse: http://10.0.0.21:8080
Conhecendo a Estrutura de Diretórios do Tomcat
Após a instalação, o Tomcat possui os seguintes diretórios principais:
- bin/: Contém scripts de administração
- conf/: Armazena arquivos de configuração
- webapps/: Diretório para deploy de aplicativos
- logs/: Contém os logs de operação
Arquivo de Configuração server.xml
[root@tomcat /app/ferramentas/tomcat]# cat conf/server.xml
<?xml version="1.0" encoding="UTF-8"??>
<server port="8005" shutdown="SHUTDOWN">
<listener classname="org.apache.catalina.startup.VersionLoggerListener"></listener>
<listener classname="org.apache.catalina.core.AprLifecycleListener" sslengine="on"></listener>
<listener classname="org.apache.catalina.core.JreMemoryLeakPreventionListener"></listener>
<globalnamingresources>
<resource auth="Container" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"></resource>
</globalnamingresources>
<service name="Catalina">
<connector connectiontimeout="20000" port="8080" protocol="HTTP/1.1" redirectport="8443"></connector>
<engine defaulthost="localhost" name="Catalina">
<host appbase="webapps" autodeploy="true" name="localhost" unpackwars="true">
<valve classname="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"></valve>
</host>
</engine>
</service>
</server>
Deploy de Aplicativo Web
Para deploy de um aplicativo, como o Zrlog, siga os passos:
[root@tomcat /app]# wget https://dl.zrlog.com/release/zrlog.war -O /app/webapps/ROOT.war
[root@tomcat /app]# ll /app/webapps/
total 10556
drwxr-xr-x 3 root root 4096 Apr 4 14:22 ./
drwxr-xr-x 10 root root 4096 Apr 4 14:21 ../
drwxr-x--- 9 root root 4096 Apr 4 14:22 ROOT/
-rw-r--r-- 1 root root 10794045 Jul 10 2024 ROOT.war
Acesse: http://10.0.0.21:8080 para configurar o banco de dados.
Configurando Múltiplos Instâncias do Tomcat
Criando instâncias separadas:
[root@tomcat /app/ferramentas]# cp -r apache-tomcat-9.0.50 tomcat_8081
[root@tomcat /app/ferramentas]# cp -r apache-tomcat-9.0.50 tomcat_8082
Modificando as portas para cada instância:
[root@tomcat /app/ferramentas]# sed -i 's/8080/8081/g' tomcat_8081/conf/server.xml
[root@tomcat /app/ferramentas]# sed -i 's/8005/8006/g' tomcat_8081/conf/server.xml
[root@tomcat /app/ferramentas]# sed -i 's/8443/8444/g' tomcat_8081/conf/server.xml
Iniciando as instâncias:
[root@tomcat /app/ferramentas]# ./tomcat_8081/bin/startup.sh
[root@tomcat /app/ferramentas]# ./tomcat_8082/bin/startup.sh
Verificando as portas:
[root@tomcat /app/ferramentas]# ss -lntup | grep 8081
[root@tomcat /app/ferramentas]# ss -lntup | grep 8082
Acesse as instâncias em: