Opciones de despliegue
Despliegue automatizado (Terraform): Haga clic en Run Now para usar Terraform y crear automáticamente un entorno completo. Este incluye una instancia ECS, una dirección IP pública y las reglas de security group necesarias.
Despliegue manual: Si ya cuenta con una instancia ECS o prefiere controlar el proceso de despliegue, siga estos pasos.
Requisitos previos
Enable public network access: Asigne una dirección IP pública fija o una IP elástica (EIP) a la instancia.
-
Para Linux: Permita el tráfico entrante por TCP en los puertos 22 (SSH) y 8080 (Tomcat).
Para Windows: Permita el tráfico entrante por TCP en los puertos 3389 (RDP) y 8080 (Tomcat).
Manually deploy OpenJDK: Instale un Java Development Kit (JDK) en el servidor.
Procedimiento
Linux
Paso 1: Descargue e instale Tomcat
-
Inicie sesión en una instancia ECS.
Vaya a ECS console - Instances. En la esquina superior izquierda, seleccione la región y el resource group de la instancia de destino.
Vaya a la página de detalles de la instancia de destino. Haga clic en Connect y seleccione Workbench. Siga las indicaciones en pantalla para acceder a la terminal.
-
Descargue y extraiga el paquete de instalación de Tomcat.
Este ejemplo utiliza Tomcat v9.0.91. Para instalar una versión distinta, obtenga la URL de descarga desde el sitio web oficial de Tomcat y reemplace la URL en el comando.
# Download the Tomcat installation package sudo wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.91/bin/apache-tomcat-9.0.91.tar.gz --no-check-certificate # Extract the package to the /usr/local/ directory sudo tar -zxvf apache-tomcat-9.0.91.tar.gz -C /usr/local/ -
Cree un enlace simbólico.
Este enfoque le permite actualizar Tomcat únicamente modificando el enlace simbólico, sin alterar el archivo de configuración del servicio.
sudo ln -s /usr/local/apache-tomcat-9.0.91 /usr/local/tomcat
Paso 2: Configure el servicio de Tomcat
Configure Tomcat como un servicio de systemd para habilitar el inicio automático.
-
Obtenga la ruta del JDK.
sudo readlink -f $(which java)Para JDK 8: La ruta correcta del JDK es el directorio padre del directorio
jre.Para JDK 11 o posterior: La ruta devuelta es la ruta correcta del JDK.
-
Cree el archivo de servicio
tomcat.service.sudo tee /etc/systemd/system/tomcat.service > /dev/null <<'EOF' [Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment="JAVA_HOME=JDK_PATH" Environment="CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid" Environment="CATALINA_HOME=/usr/local/tomcat" Environment="CATALINA_BASE=/usr/local/tomcat" ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh Restart=on-failure [Install] WantedBy=multi-user.target EOFReemplace
JDK_PATHcon la ruta del JDK que obtuvo en el paso anterior. -
Inicie el servicio de Tomcat y habilite su arranque durante el inicio del sistema.
# Reload the systemd configuration for the new service file to take effect sudo systemctl daemon-reload # Start the Tomcat service sudo systemctl start tomcat # Enable the Tomcat service to start on boot sudo systemctl enable tomcat
Paso 3: Compruebe el despliegue
-
Compruebe el estado del servicio.
sudo systemctl status tomcatSi se devuelve
active (running), Tomcat se inició correctamente. -
Compruebe el acceso.
En la barra de direcciones de su navegador local, introduzca
http://<ECS instance public IP address>:8080. Si se muestra la página de bienvenida de Tomcat, el entorno web Java se desplegó correctamente.
Windows
Este ejemplo muestra cómo desplegar Tomcat 9.0.121 en una instancia de Windows Server 2022 de 64 bits.
Paso 1: Instale y configure Tomcat
-
Inicie sesión en una instancia ECS.
Vaya a ECS console - Instances. En la esquina superior izquierda, seleccione la región y el resource group de la instancia de destino.
Vaya a la página de detalles de la instancia de destino. Haga clic en Connect y seleccione Workbench. Establezca el método de conexión en Terminal Connection, introduzca su nombre de usuario y contraseña, e inicie sesión en la terminal gráfica.
-
Descargue Tomcat 9.0.121 y extraiga el paquete.
Puede iniciar PowerShell y ejecutar el siguiente comando para obtener Tomcat 9.0.121 desde el repositorio de espejos de código abierto de Alibaba Cloud.
# 1. Modify the paths below as needed $Url = "https://mirrors.aliyun.com/apache/tomcat/tomcat-9/v9.0.121/bin/apache-tomcat-9.0.121-windows-x64.zip" $Zip = "C:\Downloads\tomcat.zip" # Download Path $Dest = "C:\Applications\tomcat" # Extract Directory # 2. Download and extract the package Invoke-WebRequest $Url -OutFile $Zip Expand-Archive $Zip -DestinationPath $Dest -ForceSe recomienda extraer el paquete comprimido en una ruta que no contenga caracteres chinos, por ejemplo,
C:\Java\apache-tomcat-9.0.97, para evitar posibles problemas de reconocimiento de rutas.Si necesita una versión distinta, visite el sitio web oficial de Tomcat, seleccione la versión requerida, y luego descargue y extraiga el paquete de instalación.
-
Configure las variables de entorno.
Haga clic con el botón derecho en This PC y seleccione .
En el área System variables, haga clic en New Resources, cree la variable de sistema
CATALINA_HOME, establezca el valor de la variable con la ruta de instalación de Tomcat y luego haga clic en OK.En System Variables, busque la variable
Path, selecciónela y haga clic en Modify.En Edit environment variable, haga clic en New Resources, agregue
%CATALINA_HOME%\biny haga clic en OK para guardar la configuración.
Paso 2: Instale e inicie el servicio de Tomcat
Instalar Tomcat como un servicio de Windows, en lugar de usar startup.bat para ejecutarlo temporalmente, permite que funcione de manera estable en segundo plano y habilita el inicio automático.
-
Instale el servicio.
Abra el símbolo del sistema como administrador, vaya al directorio
binde Tomcat y ejecute el comando de instalación.service.bat install Tomcat9Si se devuelve el mensaje
The service 'Tomcat9' has been installed., la instalación se completó correctamente.Tomcat9es un nombre de servicio personalizado que se utilizará al gestionar el servicio. -
Inicie el servicio y configúrelo para que arranque automáticamente.
Haga clic con el botón derecho en
, luego haga clic en Run, introduzca services.mscy presione Entrar para abrir el Administrador de servicios.Localice el servicio
Apache Tomcat 9.0 Tomcat9, haga clic con el botón derecho sobre él, seleccione Type, establezca Startup Type en Automatic y luego haga clic en Start.
Si observa caracteres chinos ilegibles en los registros, consulte Tomcat logs display garbled Chinese characters .
Paso 3: Compruebe el despliegue
En la barra de direcciones de su navegador, introduzca http://<ECS instance public IP address>:8080. Si se muestra la página de bienvenida de Tomcat, el entorno web Java se desplegó correctamente.
Siguientes pasos
Carga de un proyecto web
Siga las instrucciones de Use Workbench to upload or download files para cargar una aplicación web (archivo .war) al directorio raíz del sitio web de Tomcat (que de forma predeterminada es webapps). Tomcat detectará y desplegará automáticamente el archivo WAR.
Una vez finalizado el despliegue, podrá acceder a la aplicación mediante http://<public IP address>:8080/<project name>.
Configuración de Tomcat
Modificación del archivo de configuración
Vaya a la carpeta
confen el directorio de instalación de Tomcat y abra el archivoserver.xml.-
Modifique la configuración de Tomcat.
-
Tomcat usa el puerto
8080de forma predeterminada. Puede cambiarlo si modifica el valor del atributoport.Después de cambiar el puerto, debe add a security group rule para permitir el tráfico entrante en el nuevo puerto.
<!-- A "Connector" represents an endpoint by which request and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" /> -
El directorio raíz predeterminado del sitio web de Tomcat es
webapps. Para cambiar este directorio, modifique el valor del atributoappBase.En la siguiente configuración <Host> de server.xml, el atributo
appBase="webapps"especifica el directorio de despliegue de la aplicación:</Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> -->
-
Establecimiento de parámetros de memoria JVM para Tomcat
Linux
-
Cree un archivo
setenv.sh. El archivosetenv.shle permite gestionar centralizadamente los parámetros de la JVM.Ajuste los tamaños inicial y máximo del montón (heap) de la JVM según las especificaciones de su instancia ECS y la carga de la aplicación.
sudo tee /usr/local/tomcat/bin/setenv.sh > /dev/null <<'EOF' #!/bin/bash # Example: For an ECS instance with 2 GB of memory, allocate 512 MB JAVA_OPTS="-server -Xms512m -Xmx512m" export JAVA_OPTS EOF -
Agregue permisos de ejecución al archivo.
sudo chmod +x /usr/local/tomcat/bin/setenv.sh Reinicie Tomcat para que la configuración surta efecto.
Windows
Vaya a la carpeta
binen el directorio de instalación de Tomcat y abra el archivocatalina.bat.-
Agregue o modifique los parámetros de la JVM.
Cerca del inicio del archivo (generalmente después de
setlocaly antes decall "%CATALINA_HOME%\bin\setenv.bat"), agregue o modifiqueJAVA_OPTS. Ajuste la memoria inicial y máxima del montón de la JVM según las especificaciones de la instancia ECS y la carga de la aplicación.# Example: For an ECS instance with 2 GB of memory, allocate 512 MB set "JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx512m"Si
JAVA_OPTSya existe, añádale los parámetros (tenga en cuenta que se requiere un espacio entre ellos). Reinicie Tomcat para que la configuración surta efecto.
Recomendaciones para entornos de producción
En entornos de producción, aplique las siguientes medidas después del despliegue para reducir los riesgos de seguridad.
-
Elimine las aplicaciones predeterminadas
Para reducir la superficie de ataque potencial, se recomienda eliminar todas las aplicaciones de ejemplo predeterminadas dentro del directorio
webapps, comodocs,examples,manageryhost-manager.Linux:
sudo rm -rf /usr/local/tomcat/webapps/*Windows: Use el Explorador de archivos para eliminar manualmente todos los subdirectorios dentro del directorio
CATALINA_HOME\webapps.
-
Configure HTTPS
Utilice HTTPS en producción. Install an SSL certificate on the Tomcat server (Linux), y use Nginx o Server Load Balancer (SLB) como proxy inverso para procesar las solicitudes HTTPS.
Preguntas frecuentes
El navegador agota el tiempo de espera o no se puede establecer conexión
Compruebe el security group: Verifique si las reglas de entrada del security group de la instancia ECS permiten el puerto
8080.Compruebe el firewall del sistema operativo: Verifique si el firewall del sistema operativo (como
firewalldoWindows Defender Firewall) está deshabilitado o si se configuró para permitir el tráfico en el puerto8080.-
Compruebe el listener del puerto: Confirme que Tomcat esté escuchando en el puerto 8080.
Linux:
ss -lntp | grep 8080Windows:
netstat -ano | findstr ":8080"
Tomcat no inicia
Revise los registros: Los registros principales de Tomcat se ubican en la carpeta
logsde su directorio de instalación. Revise los archivoscatalina.out(Linux) ocatalina.<date>.log(Windows) ylocalhost.<date>.log. Si los registros contienen el errorAddress already in use, significa que otro programa ocupa el puerto. Para más información, consulte Troubleshoot port inaccessibility when an ECS instance can be pinged.Error en la ruta del JDK: Compruebe si la variable de entorno
JAVA_HOMEestá configurada correctamente.
Los registros de Tomcat muestran caracteres chinos ilegibles
Este problema suele ocurrir por una discrepancia entre la codificación predeterminada del símbolo del sistema de Windows (CMD), que es GBK, y la codificación de salida de los registros de Tomcat, que generalmente es UTF-8.
Abra la carpeta
confen el directorio de instalación de Tomcat, busque y edite el archivologging.properties.Cambie todas las codificaciones
UTF-8predeterminadas del archivo aGBK.Guarde el archivo y reinicie Tomcat. Compruebe que los caracteres chinos en los registros se muestren correctamente.