Je n'arrive pas à forcer https sur le niveau d'utilisation libre de beanstalk élastique.
J'ai essayé la suggestion suivante sur Comment forcer https sur un beanstalk Amazon sans échouer à la vérification de l'état de santé
Utilisation de cette règle de réécriture Apache
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/status$
RewriteCond %{REQUEST_URI} !^/version$
RewriteCond %{REQUEST_URI} !^/_hostmanager/
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Lorsque j'essaie cela, les requêtes http ne sont pas redirigées vers https comme je le voudrais. Au lieu de cela, la page http se charge normalement. J'ai également essayé d'utiliser l'en-tête X-Forwarded-Port avec le même résultat.
J'ai aussi essayé la règle de réécriture suivante
RewriteCond %{SERVER_PORT} 80
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Et cette règle provoque une boucle de redirection. Ainsi, il semblerait que les règles de réécriture Apache ne prennent pas les en-têtes Elastic Load Balancer X-Forwarded-Port et X-Forwarded-Proto, mais une boucle de redirection n'est pas ce que je recherche non plus.
S'il vous plaît aider. Je suis nouveau sur AWS, Elastic Beanstalk et je ne connais pas très bien les règles Apache. Je ne sais pas trop où aller à partir d'ici. Merci.
Cette réponse suppose que vous avez déjà activé https dans le groupe de sécurité de l'équilibreur de charge, ajouté le certificat SSL à l'équilibreur de charge, ajouté 443 aux ports transférés par l'équilibreur de charge et pointé votre nom de domaine sur l'environnement Elastic Beanstalk avec Route 53 (ou service DNS équivalent).
REMARQUE: cette réponse concerne les environnements Elastic Beanstalk utilisant Apache. Il se peut également que cela ne fonctionne pas pour un déploiement basé sur un menu fixe.
Tout ce que vous avez à faire est d’ajouter ce qui suit à l’un de vos fichiers .config
dans le répertoire .ebextensions
de votre projet :
files:
"/etc/httpd/conf.d/ssl_rewrite.conf":
mode: "000644"
owner: root
group: root
content: |
RewriteEngine On
<If "-n '%{HTTP:X-Forwarded-Proto}' && %{HTTP:X-Forwarded-Proto} != 'https'">
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]
</If>
Ceci est modérément simple en dehors de Elastic Beanstalk. On ajoute généralement une règle de réécriture Apache comme suit:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
Ou, si derrière un équilibreur de charge, comme nous sommes dans ce cas:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]
Cependant, ces configurations ne fonctionnent que dans un bloc <VirtualHost>
. Changer la variable RewriteCond
en un bloc <If>
lui permet de fonctionner correctement en dehors d'un bloc <VirtualHost>
, ce qui nous permet de l'insérer dans un fichier de configuration Apache autonome. Notez que la configuration standard Apache sur CentOS (y compris la configuration sur ElasticBeanstalk) inclut tous les fichiers correspondant à /etc/httpd/conf.d/*.conf
, ce qui correspond au chemin du fichier dans lequel nous stockons ce fichier.
La partie -n '%{HTTP:X-Forwarded-Proto}'
de la condition l'empêche de rediriger ses tâches si vous ne vous trouvez pas derrière un équilibreur de charge, ce qui vous permet de partager la configuration entre un environnement de production avec un équilibreur de charge et https et un environnement intermédiaire unique et dépourvu de https. Cela n'est pas nécessaire si vous utilisez des équilibreurs de charge et https sur tous vos environnements, mais cela ne fait pas de mal de l'avoir.
J'ai vu beaucoup de mauvaises solutions à ce problème, et il est intéressant de les parcourir pour comprendre pourquoi cette solution est nécessaire.
Use Cloudfront: Certaines personnes suggèrent d'utiliser une configuration Cloudfront non mise en cache devant Elastic Beanstalk pour effectuer la redirection HTTP vers HTTPS. Cela ajoute un tout nouveau service (donc une complexité accrue) qui n’est pas tout à fait approprié (Cloudfront est un CDN; ce n’est pas le bon outil pour forcer HTTPS sur un contenu intrinsèquement dynamique). Apache config est la solution normale à ce problème et Elastic Beanstalk utilise Apache, c'est donc la voie à suivre.
SSH sur le serveur et ...: Ceci est complètement opposé au point d'Elastic Beanstalk et a tellement de problèmes. Toutes les nouvelles instances créées par autoscaling n'auront pas la configuration modifiée. Tous les environnements clonés n'auront pas la configuration. N'importe quel nombre d'un ensemble raisonnable de modifications de l'environnement effacera la configuration. C'est juste une si mauvaise idée.
Remplacez la configuration Apache par un nouveau fichier: Cela entre dans le bon domaine de solution mais vous laisse avec un cauchemar de maintenance si Elastic Beanstalk modifie des aspects de la configuration du serveur (ce qu’ils pourraient très bien faire). Voir aussi les problèmes dans l’article suivant.
Editez dynamiquement le fichier de configuration Apache pour ajouter quelques lignes: C'est une idée décente. Le problème, c’est que cela ne fonctionnera pas si Elastic Beanstalk change jamais le nom de son fichier de configuration Apache par défaut, et que ce fichier peut être écrasé à la moindre attente: https://forums.aws.Amazon.com /thread.jspa?threadID=163369
EDIT: Bien que j'adore cette réponse, elle est maintenant très ancienne. AWS a mis au point de nouveaux services (tels que Certificate Manager ) qui rendent une partie de cette réponse obsolète. De plus, utiliser le dossier
.ebextensions
avec Apache est une méthode plus simple pour gérer cette redirection, comme expliqué ci-dessus.
Si vous hébergez votre site Web sur S3, il se peut que certaines parties de cette réponse vous soient utiles.
Cela a fonctionné pour moi:
Téléchargez le certificat sur AWS à l'aide de la commande aws
console. La structure de commandement est la suivante:
aws iam upload-server-certificate --server-certificate-name CERTIFICATE_NAME --certificate-body "file://PATH_TO_CERTIFICATE.crt" --private-key "file://YOUR_PRIVATE_KEY.pem" --certificate-chain "file://YOUR_CERTIFICATE_CHAIN.ca-bundle" --path /cloudfront/
Dans votre application Elastic Beanstalk, accédez à Configuration -> Niveau réseau -> Equilibrage de charge et cliquez sur l'icône engrenage.
Sélectionnez Port d'écoute sécurisé sous la forme 443. Sélectionnez Protocole comme HTTPS. Sélectionnez le CERTIFICATE_NAME
dans étape 2 pour ID de certificat SSL. Enregistrez la configuration.
Allez dans votre Console. Cliquez sur EC2 Instances. Cliquez sur Load Balancers. Cliquez sur les équilibreurs de charge. Cliquez sur Instances et faites défiler pour afficher les instances EC2 affectées à cet équilibreur de charge. Si l'instance EC2 a le même nom que votre URL d'application (ou quelque chose de proche), notez nom DNS pour l'équilibreur de charge. Il devrait être au format awseb-e-...
Retournez à votre Console. Cliquez sur CloudFront. Cliquez sur Créer une distribution. Sélectionnez une distribution Web.
Configurez la distribution. Définissez votre nom de domaine d'origine sur le nom DNS de l'équilibreur de charge trouvé dans step 5. Définissez la stratégie de protocole Viewer sur Redirect HTTP to HTTPS. Définissez Forward Query Strings sur Yes. Définissez Noms de domaine alternatifs (CNAME) sur les URL à utiliser pour votre application. Définissez SSL Certificate sur le CERTIFICATE_NAME
que vous avez chargé à step 2. Créez votre distribution.
Cliquez sur le nom de votre distribution dans CloudFront. Cliquez sur Origines, sélectionnez votre origine et cliquez sur Modifier. Assurez-vous que la stratégie de protocole Origin correspond à Match Viewer. Retourner. Cliquez sur Comportements, sélectionnez votre origine et cliquez sur Modifier. Changez Forward Headers en Whitelist et ajoutez Host. Sauvegarder.
Les plus votés ne fonctionnent pas pour moi .. la directive <If> ne fonctionne qu'avec Apache 2.4+, mais ElasticBeanstalk a la version 2.2.x.
Donc, en suivant les mêmes conseils que ci-dessus. Créez un fichier appelé .ebextensions/https_rewrite.config avec le contenu suivant
files:
"/etc/httpd/conf.d/ssl_rewrite.conf":
mode: "000644"
owner: root
group: root
content: |
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
# This will enable the Rewrite capabilities
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Cela semble fonctionner pour moi.
Sur la façon de créer ce fichier dans votre fichier WAR, consultez cette answer
J'essaie de rediriger un haricot élastique avec loadbalancer en 2018. Aucune des réponses ci-dessus ne fonctionne dans mon environnement. Plusieurs problèmes que j'ai rencontrés:
J'essayais la réponse la plus votée, mais mon Tomcat est la version 2.7. Il ne supporte pas.
J'utilisais container_commands et copiais le paramètre 00_applications. AWS l'ignore simplement.
Donc finalement, je l'ai fait fonctionner en lisant ceci: https://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/Java-Tomcat-proxy.html
Voici ce que je fais:
J'ai recréé la structure du dossier:
.ebextensions
- httpd
-conf.d
-ssl.conf
Et puis c'est le contenu de ssl.conf
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ retry=0
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost on
ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
J'espère que cela aidera.
Edit: La solution Zags est plus générale et correcte. Je le recommande sur le mien (qui est spécifique à un env en python)
Voici une solution propre et rapide qui évite le piratage de wsgi.conf ou l’utilisation de CloudFront.
Dans votre .ebextensions/some_file.config:
# Redirect HTTP to HTTPS
"/etc/httpd/conf.d/https_redirect.conf":
mode: "000644"
owner: root
group: root
content: |
<Directory /opt/python/current/app/>
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
</Directory>
J'ai l'impression que c'est trop facile, mais semble bien fonctionner.
Notez également que je redirige explicitement HTTP au lieu de "pas HTTPS".
Aucune des réponses ci-dessus n'a fonctionné pour moi, mais certaines m'ont aidé à trouver la réponse qui a fonctionné pour moi J'ai également trouvé l'URL ci-dessous qui a aidé http://docs.aws.Amazon.com/elasticbeanstalk /latest/dg/Java-Tomcat-platform.html
J'ai créé la structure de fichier mentionnée dans l'URL ci-dessus pour modifier 2 fichiers Httpd.conf 00_application.conf
copiez l'intégralité du fichier httpd.conf à partir de votre instance et placez-le dans votre code sous .ebextention, dans la structure de dossiers mentionnée dans le lien ci-dessus. Ensuite, ajoutez simplement la ligne ci-dessous à ce fichier dans votre projet.
LoadModule rewrite_module modules/mod_rewrite.so
Faites la même chose pour 00_application.conf, copiez-le à partir de votre instance et placez-le dans votre base de code sous .ebextention sous httpd/conf.d/elasticbeanstalk/00_application.conf Modifiez maintenant ce fichier et ajoutez-le entre VirtualHost
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
Maintenant, déployez votre code Cela devrait fonctionner.
C'est un travail pour moi avec la prochaine commande:
RewriteCond %{HTTP:X-Forwarded-Port} !=443
et sans la vérification https:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
Il semble que ELB change la valeur de X-Forwarded-Proto en http (même sur le protocole TCP).
J'ai eu du mal à comprendre cela, alors après avoir trouvé une solution, j'ai écrit une explication détaillée de ma solution pour aider, j'espère, quelqu'un d'autre. Ceci est spécifique à Tomcat 8, Apache2 et Spring Boot. Il existe des exemples vraiment utiles de ebextension dans le github des laboratoires AWS.
Résumé de ce qui a fonctionné pour moi:
Voici une application example Spring Boot .
Sur une beanstalk élastique, vous pouvez simplement ajouter votre configuration on afin que AWS écrase leur configuration, cela vous permettra d'écraser la configuration du serveur Web et de soumettre votre propre configuration.
Ajoutez simplement le fichier suivant sous le chemin: .ebextensions\httpd\conf.d
Contenu du fichier:
<VirtualHost *:80>
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ retry=0
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost on
ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
'.Ebextensions' est le dossier de configuration standard dans AWS et le reste indique simplement le fichier et le dossier que vous souhaitez écraser. Si le fichier ou le dossier n'existe pas, créez-le simplement.
J'ai les configurations suivantes pour une haricot élastique (64 bits Amazon Linux 2016.09 v2.3.1 exécutant Tomcat 8 Java 8) . J'ai créé un répertoire .ebextensions et ajouté un fichier YAML.
Zagas solution décrite ci-dessus (ce qui est très complexe) ne fonctionne pas pour moi.
Cette solution est plus logique pour moi, mais cela ne fonctionne pas non plus. Rien ne se passe et je ne vois pas le fichier "ssl_rewrite.conf" dans le répertoire "conf.d".
La troisième solution essayée consistait à ajouter les fichiers "run.config" et "ssl_rewrite.conf" dans le répertoire ".ebextendsion".
run_config contient
container_commands:
copy-config:
command: "cp .ebextensions/ssl_rewrite.conf /etc/httpd/conf.d"
ssl_rewrite.conf contient
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
ssl_rewrite.conf est créé sous le répertoire "conf.d" mais la redirection de http vers https ne fonctionne pas.
La seule solution qui a fonctionné pour moi a été d’ajouter les lignes suivantes dans "/etc/httpd/conf.d/elasticbeanstalk/00_application.conf"
<VirtualHost *:80>
......
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
......
</VirtualHost>
mais ceci est une solution temporaire et si une machine est remplacée, ma redirection https a disparu.
AWS n'accepte pas les unserscores (_) dans les en-têtes, alors que nous pouvons utiliser (-), donc supprime les caractères de soulignement des variables d'en-tête, exemple: - header_var_val = "une valeur" le remplace par headervarval = "une valeur ". Ça marche pour moi.
J'avais besoin d'appliquer HTTPS uniquement pour notre environnement de production, et non pour ceux de développement et de transfert qui sont également sur Elastic Beanstalk mais n'utilisent pas d'équilibreur de charge (et ne peuvent donc pas être affectés directement à un certificat).
J'utilise une variable d'environnement USE_HTTPS
. Nous copions le fichier ssl_rewrite.conf
si et seulement si USE_HTTPS
est défini sur true
.
.ebextensions/files/ssl_rewrite.conf
RewriteEngine On
<If "-n '%{HTTP:X-Forwarded-Proto}' && %{HTTP:X-Forwarded-Proto} != 'https'">
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
</If>
.ebextensions/https.config
files:
"/home/ec2-user/https_setup.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
echo "USE_HTTPS env var: ${USE_HTTPS,,}"
outfile=/etc/httpd/conf.d/ssl_rewrite.conf
if [ "${USE_HTTPS,,}" == "true" ]; then
echo "Configure SSL rewrite"
cp .ebextensions/files/ssl_rewrite.conf $outfile
chmod 644 $outfile
chown root:root $outfile
else
[ -f $outfile ] && rm $outfile
echo "Do not use SSL"
exit 0
fi
container_commands:
01_https_setup:
command: "/home/ec2-user/https_setup.sh"
Notez que si vous modifiez USE_HTTPS
, vous devez redéployer votre application pour que la modification soit prise en compte. Vous pouvez également supprimer les commandes echo
du fichier https.config
si vous le souhaitez.
Juste au cas où quelqu'un aurait encore du mal:
Je lutte depuis un certain temps et j'ai finalement trouvé un GitHub (de l'équipe AWS) avec toutes les configurations AWS et l'exemple ci-dessous fonctionne pour la redirection HTTP> HTTPS pour Apache 2.2. (Pour les configurations pour Apache 2.4 et Nginx, veuillez consulter le lien ci-dessous).
Apache 2.2
Créez un fichier dans le répertoire racine de votre application: YOUR_PROJECT_ROOT/.ebextensions/httpd/conf.d/elasticbeanstalk.conf (Si IntelliJ/Java est utilisé, assurez-vous de l'ajouter à la artefact final .WAR)
Ajoutez les lignes suivantes pour activer la redirection dans l'hôte virtuel:
<VirtualHost *:80>
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ retry=0
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost on
ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
Pour plus d'exemples pour Apache 2.4 et Nginx, veuillez visiter ce référentiel GitHub:
En outre, il existe de nombreuses autres configurations et exemples utiles.
Cordialement
Nous l'avons résolu sur notre serveur en manipulant X-Forwarded-Proto
correctement.
Ceci est notre configuration Grails mais cela vous aidera avec l’idée:
grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugin.springsecurity.portMapper.httpPort = 80
grails.plugin.springsecurity.portMapper.httpsPort = 443
grails.plugin.springsecurity.secureChannel.secureHeaderName = 'X-Forwarded-Proto'
grails.plugin.springsecurity.secureChannel.secureHeaderValue = 'http'
grails.plugin.springsecurity.secureChannel.insecureHeaderName = 'X-Forwarded-Proto'
grails.plugin.springsecurity.secureChannel.insecureHeaderValue = 'https'
grails.plugin.springsecurity.secureChannel.definition = [
[pattern: '/**', access: 'REQUIRES_SECURE_CHANNEL']
]
Pourquoi ne mettez-vous pas simplement un fichier .htaccess dans le dossier racine? De cette façon, vous pouvez simplement le tester et le déboguer. Et si vous l'incluez dans le .Zip, il sera automatiquement déployé à nouveau sur toutes les instances.
Utilisez simplement .htaccess
:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]
Veuillez noter que la réponse la plus votée est un peu ancienne maintenant ... La réponse de A Paul est en fait la bonne réponse. Le lien fourni dans sa réponse est AWS (il est donc recommandé de remplacer votre configuration Apache pour effectuer la redirection de HTTP vers HTTPS lors de l'exécution de votre application sur Elastic Beanstalk).
Il y a une chose très importante à noter. Si vous déployez plus d'une application Web, l'ajout du dossier .ebextensions à l'intérieur de l'une de vos applications Web ne fonctionnera pas. Vous remarquerez que Aucune des configurations spécifiées n'est en cours d'écriture ou de création. Si vous déployez plusieurs applications Web sur un environnement Elastic Beanstalk, vous devrez lire cet article de AWS Java Tomcat Déployer plusieurs fichiers WAR sur Elastic Beanstalk
En règle générale, vous devez disposer de la structure suivante avant d'émettre la commande eb afin de déployer les fichiers WAR:
MyApplication.Zip
├── .ebextensions
├── foo.war
├── bar.war
└── ROOT.war
si le dossier .ebextentions existe dans chaque fichier WAR, vous remarquerez qu'il est complètement ignoré et qu'aucune modification de configuration ne sera effectuée.
J'espère que ceci aide quelqu'un d'autre.
Avec les nouveaux équilibreurs d'applications, vous pouvez le faire de manière relativement simple maintenant ...
Assurez-vous d’en configurer l’un au moment de l’installation d’un environnement EB (toujours par défaut, l’équilibreur de charge classique, je crois). Vous ne pouvez pas changer le type une fois l'environnement créé, recréez-le
Ceci fait, allez dans les paramètres EC2 -> Equilibreurs de charge. Cliquez sur l'équilibreur de charge que vous avez créé pour votre environnement EB. Vous devez vous assurer que vous avez configuré un écouteur HTTPS avant cette tâche. Veillez donc à écouter sur HTTPS 443 avec un certificat SSL et à transférer le trafic sur vos instances avec HTTP sur 80.
Ajoutez ensuite un nouvel écouteur qui écoute sur HTTP et ajoutez une action par défaut de "Rediriger vers:". Assurez-vous de définir HTTPS comme protocole, 443 comme port, "Hôte d'origine, chemin, requête" comme option et enfin 301 comme code de réponse HTTP.
Une fois cet écouteur ajouté, assurez-vous de mettre à jour votre groupe de sécurité EC2 Load Balancer pour accepter les connexions HTTPS et HTTP. Vous verrez un petit panneau d'avertissement sur l'écouteur pour vous le rappeler!
Chris
Pour prolonger deux autres réponses à cette question https://stackoverflow.com/a/43026082/8775205 , https://stackoverflow.com/a/42035023/8775205 . Pour botte à ressort les utilisateurs qui déploient leurs services sur AWS avec ELB et qui ont besoin d’un guide étape par étape, vous pouvez ajouter un fichier ****. conf sous src/main/webapp/.ebextensions/httpd/conf.d/dans votre projet.
src
--main
----Java
----resources
----webapps
------.ebextensions
--------httpd
----------confd
------------****.conf
****. conf ressemble à ce qui suit. J'ai remarqué que mon site de test ne comportait qu'une seule instance et j'ai donc ajouté une condition pour l'exclure.
<VirtualHost *:80>
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker
RewriteCond %{HTTP_Host} !testexample.com #excludes test site
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ retry=0
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost on
ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
Après cela, pensez à ajouter une "ressource" sous maven-war-plugin dans votre pom.xml afin de récupérer la configuration ci-dessus.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<!-- some other resource configured by yourself-->
</resource>
<resource>
<directory>src/main/webapps/.ebextensions</directory>
<targetPath>.ebextensions</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
<version>2.1.1</version>
</plugin>
Enfin, validez et poussez votre code, attendez AWS codebuild et codepipeline pour récupérer votre code dans votre référentiel et le déployer dans un environnement beanstalk, ou simplement décompresser votre projet dans un fichier war et le télécharger sur votre environnement AWS beanstalk.