我有一个 EC2 实例,它安装并配置了两个应用程序
- Jenkins(在端口 8080 上运行,我已将其配置为使用上下文路径
/jenkins/
) - SonarQube(在端口 9000 上运行,我已将其配置为使用上下文路径
/sonar/
)
当我简单地点击 EC2 实例的公共 DNS 时,会发生以下情况
- http://sample-ec2-public-ip:8080/jenkins(Jenkins加载成功)
- http://sample-ec2-public-ip:9000/sonar (SonarQube加载成功)
我添加了一个具有 2 个目标组和 2 个侦听器规则的 Application Load Balancer。两个目标组都指向同一个 EC2 实例以访问 SonarQube 和 Jenkins
- 第一个监听器规则指向路径 /jenkins/ 到 ec2 实例的 8080 端口
- 第二个侦听器规则指向路径 /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 文件 Sonar 无法找到(404 错误)并且 sonar 在加载时冻结。
这只发生在我放置应用程序负载平衡器时。当我通过 EC2 公共 IP 访问 Jenkins 和 Sonar 时,我可以很好地访问 Jenkins 和 Sonar。
谁能帮我解决应用程序负载均衡器的这个问题?它应该像这样工作吗?