Configuración del servidor proxy de su entorno Tomcat - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración del servidor proxy de su entorno Tomcat

La plataforma Tomcat utiliza nginx (el valor predeterminado) o Apache HTTP Server como proxy inverso para transmitir las solicitudes del puerto 80 de la instancia al contenedor web Tomcat que está a la escucha en el puerto 8080. Elastic Beanstalk proporciona una configuración de proxy predeterminada que puede ampliar o anular por completo con su propia configuración.

Configuración del servidor proxy en la versión de su plataforma

Todas las plataformas AL2023/AL2 son compatibles con una característica de configuración de proxy uniforme. Para obtener más información sobre la configuración del servidor proxy en las versiones de su plataforma que ejecutan AL2023/AL2, expanda la sección Configuración del proxy inverso de Ampliación de las plataformas Linux de Elastic Beanstalk.

Si su entorno Tomcat de Elastic Beanstalk utiliza una versión de la plataforma de la AMI de Amazon Linux (anterior a Amazon Linux 2), lea la información adicional de esta sección.

Notas
  • La información de este tema solo se aplica a ramificaciones de plataforma basadas en la AMI de Amazon Linux (AL1). Las ramificaciones de la plataforma AL2023/AL2 son incompatibles con las versiones anteriores de la plataforma de la AMI de Amazon Linux (AL1) y requieren ajustes de configuración diferentes.

  • El 18 de julio de 2022, Elastic Beanstalk estableció el estado de todas las ramificaciones de la plataforma basadas en la AMI de Amazon Linux (AL1) como retirado. Para obtener más información sobre la migración a una ramificación de la plataforma Amazon Linux 2023 actual y totalmente compatible, consulte Migración de su aplicación de Linux de Elastic Beanstalk a Amazon Linux 2023 o Amazon Linux 2.

Las versiones de la plataforma Tomcat basadas en la AMI de Amazon Linux (anterior a Amazon Linux 2) utilizan Apache 2.4 para el proxy de forma predeterminada. Puede elegir usar Apache 2.2 o nginx incluyendo un archivo de configuración en el código fuente. El siguiente ejemplo configura Elastic Beanstalk para usar nginx.

ejemplo .ebextensions/nginx-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: nginx

Si la aplicación se desarrolló para Apache 2.2, lea esta sección para obtener información sobre la migración a Apache 2.4.

A partir de las configuraciones de la versión 3.0.0 de la plataforma Tomcat, que se publicaron con la actualización de Java con la plataforma Tomcat el 24 de mayo de 2018, Apache 2.4 es el proxy predeterminado de la plataforma Tomcat. Los archivos .conf de Apache 2.4 son en su mayoría, pero no todos, compatibles con los de Apache 2.2. Elastic Beanstalk incluye archivos .conf predeterminados que funcionan correctamente con cada versión de Apache. Si la aplicación no personaliza la configuración de Apache, tal y como se explica en Ampliación y anulación de la configuración predeterminada de Apache: AMI de Amazon Linux (AL1), debería migrar a Apache 2.4 sin problemas.

Si la aplicación amplía o anula la configuración de Apache, es posible que tenga que realizar algunos cambios para migrar a Apache 2.4. Para obtener más información, consulte Upgrading to 2.4 from 2.2 en el sitio web de The Apache Software Foundation. Como medida temporal, hasta que migre correctamente a Apache 2.4, puede utilizar Apache 2.2 con su aplicación; para ello, incluya el segmento archivo de configuración en el código fuente.

ejemplo .ebextensions/apache-legacy-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache/2.2

Para obtener una solución rápida, también puede seleccionar el servidor proxy en la consola de Elastic Beanstalk.

Para seleccionar el proxy en el entorno Tomcat en la consola de Elastic Beanstalk
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su Región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.

  5. En Proxy server (Servidor proxy), elija Apache 2.2 (deprecated).

  6. Para guardar los cambios, elija Aplicar en la parte inferior de la página.

Selección del proxy para un entorno Tomcat en la categoría de configuración de software de la consola de Elastic Beanstalk

Puede ampliar la configuración de Apache predeterminada de Elastic Beanstalk con archivos de configuración adicionales. Si lo prefiere, puede anular por completo la configuración de Apache predeterminada de Elastic Beanstalk.

nota

Para ampliar la configuración de Apache predeterminada de Elastic Beanstalk, añada los archivos de configuración .conf a una carpeta con el nombre .ebextensions/httpd/conf.d en el paquete de código fuente de su aplicación. La configuración de Apache de Elastic Beanstalk incluye archivos .conf en esta carpeta automáticamente.

~/workspace/my-app/ |-- .ebextensions | -- httpd | -- conf.d | -- myconf.conf | -- ssl.conf -- index.jsp

Por ejemplo, la siguiente configuración de Apache 2.4 agrega un agente de escucha en el puerto 5000.

ejemplo .ebextensions/httpd/conf.d/port5000.conf
listen 5000 <VirtualHost *:5000> <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:8080/ retry=0 ProxyPassReverse / http://localhost:8080/ ProxyPreserveHost on ErrorLog /var/log/httpd/elasticbeanstalk-error_log </VirtualHost>

Para anular por completo la configuración de Apache predeterminada de Elastic Beanstalk, incluya una configuración en el paquete de código fuente en .ebextensions/httpd/conf/httpd.conf.

~/workspace/my-app/ |-- .ebextensions | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp

Si anula la configuración de Apache de Elastic Beanstalk, agregue las siguientes líneas a su httpd.conf para extraer las configuraciones de Elastic Beanstalk de Informes y monitorización de estado mejorados, la compresión de respuesta y los archivos estáticos.

IncludeOptional conf.d/*.conf IncludeOptional conf.d/elasticbeanstalk/*.conf

Si su entorno utiliza Apache 2.2 como proxy, reemplace las directivas IncludeOptional por Include. Para obtener más información acerca del comportamiento de estas dos directivas en las dos versiones de Apache, consulte Include en Apache 2.4, IncludeOptional en Apache 2.4 e Include en Apache 2.2.

nota

Para anular el agente de escucha predeterminado en el puerto 80, incluya un archivo denominado 00_application.conf en .ebextensions/httpd/conf.d/elasticbeanstalk/ para sobrescribir la configuración de Elastic Beanstalk.

Para consultar un ejemplo funcional, eche un vistazo al archivo de configuración predeterminado de Elastic Beanstalk en /etc/httpd/conf/httpd.conf en una instancia de su entorno. Todos los archivos de la carpeta .ebextensions/httpd del paquete de código fuente se copian en /etc/httpd durante las implementaciones.

Para ampliar la configuración predeterminada de nginx de Elastic Beanstalk, añada los archivos de configuración .conf a una carpeta con el nombre .ebextensions/nginx/conf.d/ en el paquete de código fuente de su aplicación. La configuración de nginx de Elastic Beanstalk incluye archivos .conf en esta carpeta automáticamente.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- conf.d | |-- elasticbeanstalk | | `-- my-server-conf.conf | `-- my-http-conf.conf `-- index.jsp

Los archivos con la extensión .conf en la carpeta conf.d se incluyen en el bloque http de la configuración predeterminada. Los archivos de la carpeta conf.d/elasticbeanstalk se incluyen en el bloque server dentro del bloque http.

Para anular completamente la configuración predeterminada de nginx de Elastic Beanstalk, incluya una configuración en el paquete de código fuente de .ebextensions/nginx/nginx.conf.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- index.jsp
Notas
  • Si anula la configuración de nginx de Elastic Beanstalk, añada la siguiente línea al bloque server de su configuración para extraer las configuraciones de Elastic Beanstalk del agente de escucha del puerto 80, la compresión de respuesta y los archivos estáticos.

    include conf.d/elasticbeanstalk/*.conf;
  • Para anular el agente de escucha predeterminado en el puerto 80, incluya un archivo denominado 00_application.conf en .ebextensions/nginx/conf.d/elasticbeanstalk/ para sobrescribir la configuración de Elastic Beanstalk.

  • Incluya también la línea siguiente en el bloque http de su configuración para extraer las configuraciones de Elastic Beanstalk para Informes y monitorización de estado mejorados y los registros.

    include conf.d/*.conf;

Para consultar un ejemplo funcional, eche un vistazo al archivo de configuración predeterminado de Elastic Beanstalk en /etc/nginx/nginx.conf en una instancia de su entorno. Todos los archivos de la carpeta .ebextensions/nginx del paquete de código fuente se copian en /etc/nginx durante las implementaciones.