我已经为Amazon Web Services Application Load Balancer配置了几个基本Web应用程序的注册目标。我在CloudFlare中创建了一个CNAME,并将其(使用DNS ONLY选项)指向我的ALB的A Record端点。事情在我的期望中起作用,设置感觉非常光滑。
我在ALB上使用规则创建了一个侦听器,以便将对不同子域或特定路径的请求路由到正确的目标应用程序,如下所示:
IF host matches 'BLOG.mysite.com' --> target containing blog app
IF host matches 'mysite.com/V1/CHAT' --> target containing chat API
DEFAULT --> default target
当我为此CNAME启用CloudFlare的HTTP代理 ON 时,事情变得混乱。对CNAME的请求通常会返回一个正在运行的网页(html,不久之后)在资产如JS,css和图像之后)超时。这是令人失望的,因为我可以免费使用CloudFlare的HTTP代理,并提供无数的安全功能,如DDos保护等。
有谁知道为什么会发生这种情况以及如何解决这个问题?当HTTP代理打开时,ALB是否无法访问来自Internet的请求主机?
更新:我认为发生的事情是我的ALB规则包含主机上的匹配案例,因为更改或修改了主机名,因此打开CloudFlare HTTP代理时会停止工作。但是,我还没有证明这一点。