Configuration du serveur proxy de votre environnement Tomcat - AWS Elastic Beanstalk

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration du serveur proxy de votre environnement Tomcat

La plateforme Tomcat utilise nginx (par défaut) ou Apache HTTP Server comme proxy inverse pour relayer les requêtes du port 80 de l'instance vers votre conteneur web Tomcat écoutant sur le port 8080. Elastic Beanstalk fournit une configuration de proxy par défaut que vous pouvez étendre ou remplacer totalement par votre propre configuration.

Configuration du serveur proxy sur la version de votre plateforme

Toutes les plateformes AL2023/AL2 prennent en charge une fonctionnalité de configuration de proxy uniforme. Pour en savoir plus sur la configuration du serveur proxy sur vos versions de plateforme exécutant AL2023/AL2, développez la section Configuration de proxy inverse dans Extension des plateformes Linux Elastic Beanstalk.

Si votre environnement Elastic Beanstalk Tomcat utilise une version de plateforme AMI Amazon Linux (antérieure à Amazon Linux 2), lisez les informations supplémentaires dans cette section.

Remarques
  • Les informations de cette rubrique s'appliquent uniquement aux branches de plateforme basées sur l'AMI Amazon Linux (AL1). Les branches de plateforme AL2023/AL2 sont incompatibles avec les versions de plateforme précédentes de l'AMI Amazon Linux (AL1) et nécessitent des paramètres de configuration différents.

  • Le 18 juillet 2022, Elastic Beanstalk définira les statuts de toutes les branches de plateforme basées sur une AMI Amazon Linux (AL1) sur mise hors service. Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.

Les versions de la plateforme Tomcat basées sur l'AMI Amazon Linux (antérieure à Amazon Linux 2) utilisent Apache 2.4 pour le proxy par défaut. Vous pouvez choisir d'utiliser Apache 2.2 ou nginx en incluant un fichier de configuration dans votre code source. L'exemple suivant configure Elastic Beanstalk pour utiliser nginx.

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

Si votre application a été développée pour Apache 2.2, lisez cette section afin d'en savoir plus sur la migration vers Apache 2.4.

À compter de la version 3.0.0 de la plateforme Tomcat, qui a été publiée avec la mise à jour de la plateforme Java avec Tomcat le 24 mai 2018, Apache 2.4 est le proxy par défaut de la plateforme Tomcat. Les fichiers Apache 2.4 .conf sont pour la plupart, mais pas dans leur totalité, rétrocompatibles avec ceux d'Apache 2.2. Elastic Beanstalk inclut les fichiers .conf par défaut qui fonctionnent correctement avec chaque version Apache. Si votre application ne personnalise pas la configuration d'Apache, comme expliqué dans Extension et remplacement de la configuration Apache par défaut – AMI Amazon Linux (AL1), elle devrait migrer vers Apache 2.4 sans aucun problème.

Si votre application étend ou remplace la configuration d'Apache, il se peut que vous ayez à apporter certaines modifications pour migrer vers Apache 2.4. Pour plus d'informations, consultez Mise à jour de la version 2.2 vers la version 2.4 sur le site The Apache Software Foundation. Temporairement, tant que vous n'avez pas réussi à migrer vers Apache 2.4, vous pouvez choisir d'utiliser Apache 2.2 avec votre application en incluant le fichier de configuration suivant dans votre code source.

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

Pour une solution rapide, vous pouvez également sélectionner le serveur proxy dans la console Elastic Beanstalk.

Pour sélectionner le proxy dans votre environnement Tomcat dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk et, dans la liste Regions (Régions), sélectionnez votre Région AWS.

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Mises à jour, surveillance et journalisation, sélectionnez Modifier.

  5. Pour Serveur proxy, choisissez Apache 2.2 (deprecated).

  6. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

Choix du proxy pour un environnement Tomcat dans la catégorie de configuration des logiciels de la console Elastic Beanstalk

Vous pouvez étendre la configuration Apache Elastic Beanstalk par défaut avec vos fichiers de configuration supplémentaires. Sinon, vous pouvez remplacer complètement la configuration Apache Elastic Beanstalk par défaut.

Note

Pour étendre la configuration Apache Elastic Beanstalk par défaut, ajoutez les fichiers de configuration .conf à un dossier nommé .ebextensions/httpd/conf.d dans le bundle de fichiers source de votre application. La configuration Apache Elastic Beanstalk par défaut inclut automatiquement les fichiers .conf dans ce dossier.

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

Par exemple, la configuration Apache 2.4 suivante ajoute un écouteur sur le port 5000 :

Exemple .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>

Pour remplacer complètement la configuration Apache Elastic Beanstalk par défaut, incluez une configuration dans votre bundle de fichiers source sur .ebextensions/httpd/conf/httpd.conf.

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

Pour remplacer la configuration Apache Elastic Beanstalk par défaut, ajoutez les lignes suivantes à votre fichier httpd.conf afin d'extraire les configurations Elastic Beanstalk pour Surveillance et création de rapports d'intégrité améliorée, la compression des réponses et les fichiers statiques.

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

Si votre environnement utilise Apache 2.2 comme proxy, remplacez les directives IncludeOptional par Include. Pour plus d'informations sur le comportement de ces deux directives dans les deux versions d'Apache, consultez Directive Include dans Apache 2.4, Directive IncludeOptional dans Apache 2.4 et Directive Include dans Apache 2.2.

Note

Pour remplacer l'écouteur par défaut sur le port 80, incluez un fichier nommé 00_application.conf dans .ebextensions/httpd/conf.d/elasticbeanstalk/ afin de remplacer la configuration Elastic Beanstalk.

Pour obtenir un exemple concret, veuillez consulter le fichier de configuration par défaut Elastic Beanstalk dans /etc/httpd/conf/httpd.conf sur une instance de votre environnement. Tous les fichiers du dossier .ebextensions/httpd de votre bundle de fichiers source sont copiés dans /etc/httpd au cours des déploiements.

Pour étendre la configuration nginx par défaut d'Elastic Beanstalk, ajoutez les fichiers de configuration .conf dans un dossier nommé .ebextensions/nginx/conf.d/ dans le bundle de fichiers source de votre application. La configuration nginx d'Elastic Beanstalk inclut automatiquement les fichiers .conf dans ce dossier.

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

Les fichiers dotés de l'extension .conf du dossier conf.d sont inclus dans le bloc http de la configuration par défaut. Les fichiers du dossier conf.d/elasticbeanstalk sont inclus dans le bloc server au sein du bloc http.

Pour remplacer complètement la configuration nginx par défaut d'Elastic Beanstalk, incluez une configuration dans votre bundle de fichiers source à l'emplacement .ebextensions/nginx/nginx.conf.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- index.jsp
Remarques
  • Pour remplacer la configuration nginx d'Elastic Beanstalk, ajoutez la ligne suivante au bloc server de votre configuration afin d'extraire les configurations Elastic Beanstalk pour l'écouteur du port 80, la compression des réponses et les fichiers statiques.

    include conf.d/elasticbeanstalk/*.conf;
  • Pour remplacer l'écouteur par défaut sur le port 80, incluez un fichier nommé 00_application.conf dans .ebextensions/nginx/conf.d/elasticbeanstalk/ afin de remplacer la configuration Elastic Beanstalk.

  • Incluez également la ligne suivante dans le bloc http de votre configuration afin d'extraire les configurations Elastic Beanstalk pour Surveillance et création de rapports d'intégrité améliorée et la journalisation.

    include conf.d/*.conf;

Pour obtenir un exemple concret, veuillez consulter le fichier de configuration par défaut Elastic Beanstalk dans /etc/nginx/nginx.conf sur une instance de votre environnement. Tous les fichiers du dossier .ebextensions/nginx de votre bundle de fichiers source sont copiés dans /etc/nginx au cours des déploiements.