簡體   English   中英

AWS Application Load Balancer 未加載指向同一 EC2 實例的目標組之一

[英]AWS Application Load Balancer not loading one of the target groups pointing to same EC2 instance

我有一個 EC2 實例,它安裝並配置了兩個應用程序

  • Jenkins(在端口 8080 上運行,我已將其配置為使用上下文路徑/jenkins/
  • SonarQube(在端口 9000 上運行,我已將其配置為使用上下文路徑/sonar/

當我簡單地點擊 EC2 實例的公共 DNS 時,會發生以下情況

我添加了一個具有 2 個目標組和 2 個偵聽器規則的 Application Load Balancer。 兩個目標組都指向同一個 EC2 實例以訪問 SonarQube 和 Jenkins

  • 第一個偵聽器規則指向路徑 /jenkins/ 上的 8080 端口到 ec2 實例
  • 第二個偵聽器規則指向路徑 /sonar/ 上的 9000 端口到同一個 ec2 實例

我有一個 AWS Route53 RecordSet,我用它來指向一個域。 這是 Route53 記錄集的代碼

   JenkinRecordSet:
    Type: AWS::Route53::RecordSetGroup
    Properties:
      HostedZoneName: mydomain.com.
      RecordSets:
      - Name: "jenkins.mydomain.com"
        Type: A
        AliasTarget:
          HostedZoneId: !GetAtt myALB.Outputs.albHostedZone
          DNSName: !GetAtt myALB.Outputs.albDNS

   SonarRecordSet:
    Type: AWS::Route53::RecordSetGroup
    Properties:
      HostedZoneName: mydomain.com.
      RecordSets:
      - Name: "sonar.mydomain.com"
        Type: A
        AliasTarget:
          HostedZoneId: !GetAtt myALB.Outputs.albHostedZone
          DNSName: !GetAtt myALB.Outputs.albDNS

健康檢查通過,我看到兩個目標組都將相同的 ec2 注冊為健康(一個用於聲納,另一個用於同一 ec2 上的詹金斯)

當我點擊jenkins.mydomain.com/jenkins時,Jenkins 加載得非常好,我可以使用它,但是當我點擊sonar.mydomain.com/sonar時,聲納卡在“加載屏幕”。 當我檢查頁面時,我看到 Sonar 無法找到一些 JS 文件(404 錯誤)並且 Sonar 在加載時凍結。

這僅在我放置應用程序負載平衡器時發生。 當我通過 EC2 公共 IP 訪問 Jenkins 和 Sonar 時,我可以很好地訪問 Jenkins 和 Sonar。

聲納加載卡住

誰能幫我解決 Application Load Balancer 的這個問題? 它應該像這樣工作嗎?

Sonar是client-side render,這是根本原因。

我建議:

  1. 指向沒有path的聲納(根路徑)
  2. 將構建文件移動到 public 中的正確文件夾

暫無
暫無

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

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