4
votes

502 mauvaise passerelle Elastic Beanstalk Spring Boot

J'ai déployé une application Spring Boot sur AWS Elastic Beanstalk. Je suis confronté à une erreur 502 Bad Gateway. Je ne trouve rien d'utile dans les journaux

/var/log/nginx/error.log

2019/02/10 02:12:54 [erreur] 3257 # 0: * 1 échec de connexion () (111: connexion refusée) lors de la connexion en amont, client: ...., serveur:, demande: " GET / HTTP / 1.1 ", en amont:" http://127.0.0.1:5000/ ", hôte : "...."

Je n'ai pas de fichiers html pour le front-end. Je veux juste télécharger, déployer l'API pour partager la documentation de swagger ui.


0 commentaires

3 Réponses :


7
votes

C'est parce que le serveur écoute 5000, l'ajout de "server.port = 5000" à application.properties a résolu le problème.


3 commentaires

Le mien est une simple application Web Java. Selon mon développeur, ce n'est pas une application de démarrage à ressort. Cela donne la même erreur que la vôtre. Comment y remédier?


J'ai ajouté la configuration du port à 5000 et cela n'a pas résolu le problème. il fonctionne très bien sur ma machine locale sur le port 5000


peut-être ont-ils changé le port par défaut



0
votes

Mon problème était que ma version de Java ne correspondait pas à la plate-forme que j'utilise avec Elastic Beanstalk, même si mon server.port était sur 5000 < / code>. Ma version Java était 11 et ma plate-forme n'était que Java 8 pour Amazon Linux. Donc, le changer en 8 dans ma base pom.xml l'a corrigé.


0 commentaires

0
votes

Cela se produit parce que l'équilibreur de charge d'application pointe par défaut vers le port 80 du serveur nginx dans l'instance EC2. Le nginx est configuré pour transférer les requêtes vers le port 5000 par défaut, tandis que le serveur d'applications s'exécute sur le port 8080 .

Configuration Nginx par défaut

 Configuration Nginx par défaut

Configuration Nginx attendue

 Configuration Nginx attendue

  1. Ce problème peut être résolu en utilisant une propriété d'environnement nommée PORT et en la pointant vers 8080 Accédez à la configuration> Propriétés de l'environnement et ajoutez la propriété entrez la description de l'image ici

Reportez-vous au document AWS: https: // docs .aws.amazon.com / Elasticbeanstalk / latest / dg / java-se-nginx.html

  1. Une autre option pour résoudre ce problème consiste à pointer directement l'équilibreur de charge d'application vers le port du serveur d'applications (8080) au lieu de nginx (80. Vous pouvez configurer 8080 comme port de processus. entrez la description de l'image ici

  2. Une autre façon de résoudre ce problème serait de définir le port sur 5000 dans l'application Spring Boot en utilisant la propriété server.port.


0 commentaires