簡體   English   中英

部署在 Elastic Beanstalk Java 環境中的 Spring Boot 應用程序返回 502

[英]Spring Boot Application deployed on Elastic Beanstalk Java environment returns 502

我正在嘗試使用 AWS 的 Java 配置(不是他們的 Tomcat 配置)在 AWS Elastic Beanstalk 上部署一個非常簡單的 Spring Boot 應用程序,但我不斷收到以下日志的 502 錯誤:

2016/06/10 02:00:14 [error] 4921#0: *1 connect() failed 
(111: Connection refused) while connecting to upstream, client: 38.94.153.178,   
server: , request: "GET /test HTTP/1.1", upstream:   "http://127.0.0.1:5000/test",
host: "my-single-instance-java-app.us-east-1.elasticbeanstalk.com"

我嘗試通過 Spring 的 application.properties 將我的端口設置為日志似乎想要的(5000,使用server.port=5000 )並驗證我的應用程序在本地主機上的該端口上成功運行。

這個問題非常相似,只是我部署的是 JAR 而不是 WAR。 似乎我在配置 Nginx 方面缺少一些東西,我不知道如何繼續。

這是我的春季應用程序:

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

    @RestController
    public static class MainController {

        @RequestMapping("/test")
        public String testMethod() {
            return "Method success!";
        }
    }
}

Nginx 不知道您的 Spring Boot 應用程序在哪個端口上運行。 通過在最后一步中將“server.port=5000”添加到 application.properties 或其他建議的方式,使應用程序在 Nginx 默認重定向到的端口 5000 上運行:

https://pragmaticintegrator.wordpress.com/2016/07/12/run-your-spring-boot-application-on-aws-using-elastic-beanstalk/

根據您向我發送的問題描述和安全組設置,您的 EC2 實例的唯一入站端口 80 已通過防火牆向全世界開放,而您的應用程序使用了端口 5000。 因此,使用我給您的安全規則,它也為您的 EC2 實例打開了入站端口 5000,因此您的應用程序開始工作時不會出現上述錯誤。

如果有人在設置 server.port=5000 后仍然收到此類錯誤。 如果您有數據庫連接,您可以執行以下操作:

  1. 在儀表板的配置部分,轉到 RDS 部分並創建一個遠程數據庫。 記住所形成的數據庫的用戶名、密碼。

  2. 在軟件部分,添加以下屬性:

SPRING_DATASOURCE_URL=jdbc:mysql://(your-db-url)/ebdb

SPRING_DATASOURCE_USERNAME=(用戶名)

SPRING_DATASOURCE_PASSWORD=(密碼)

SPRING_JPA_HIBERNATE_DDL_AUTO=更新

SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.MySQL5Dialect

閱讀 eb-engine.log 和 nginx/error.log 后,默認 nginx 端口是 5000,而 spring-boot 的默認端口是 8080。

我們可以使用setenv cmd 通過 elastic beanstalk CLI 更新我們的應用程序。

eb setenv SERVER_PORT=5000

我們可以通過 application.properties 在代碼中更新它

server.port=5000

這些步驟對我有用,

  1. 轉到>環境>選擇您的環境,
  2. 選擇左側的“配置”
  3. 對軟件點擊“編輯”
  4. 向下滾動到“環境屬性”
  5. 再添加一個條目 SERVER_PORT 並設置一些數字,我設置為 5000

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM