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.
3 Réponses :
C'est parce que le serveur écoute 5000, l'ajout de "server.port = 5000" à application.properties a résolu le problème.
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
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é.
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 attendue
PORT
et en la pointant vers 8080
Accédez à la configuration> Propriétés de l'environnement et ajoutez la propriété
Reportez-vous au document AWS: https: // docs .aws.amazon.com / Elasticbeanstalk / latest / dg / java-se-nginx.html
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.
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.