我在单个AWS EC2
实例的多个端口上运行多个服务。我一直在使用两个ALBs
来运行这些服务,但我想将它们组合成一个 ALB,根据主机名转发到正确的服务。一个服务是运行端口 80 的节点应用程序,另一个是运行端口 5001 的烧瓶应用程序。
到目前为止,我已经为mywebsite
端口 80 上的节点应用程序和api-service
端口 5001 上的烧瓶应用程序设置了目标组。
我将这些目标组添加到 ALB,my-alb
并设置转发规则,以便端口 80 和 5001 将转发到端口 443。在端口 443 上,我设置转发规则,以便如果主机匹配api.*
,它将转发到目标组api-service
,否则它将默认为my-website
.
我还将我的 alb 设置为 53 号路线的别名,api.mywebsite.com
并www.mywebsite.com
设置了证书。我的两个目标群体的所有健康检查都通过了。
这是问题所在:
www.mywebsite.com
工作正常。我被转发到该https
网站的版本,一切看起来都很好。当我尝试使用api.mywebsite.com
它时,它不会加载并且我收到 504 Bad Gateway 错误。
总而言之,以下是我已完成的步骤:
- 为我的服务设置两个目标组
port 80 and 5001
- 将这两个目标组添加到
ALB
并设置路由规则以重定向到port 443
port 5001
如果主机匹配api.*
其他路由到端口 80 上的服务,则为路由 443 设置转发规则以转发到服务。- 将 ALB 设置为
api.mywebsite.com
和www.mywebsite.com
in的别名route 53
。
任何帮助将不胜感激,谢谢!
编辑:让它工作。
我错误地配置了我的安全组。那是我缺少的步骤:D。一旦我将端口 5001 添加到分配给我的 ALB 和 EC2 的安全组,它就开始正常工作。
谢谢!