检测没有 SSL 终止的 HTTPS

Detect HTTPS without SSL Termination

我想知道 https 是否在地址栏中,因为我在 HAPROXY 之前有 SSL 终止,但如果它是 HTTP,我希望 HAPROXY 进行重定向(我知道这是一个奇怪的请求) .

我试过: 重定向方案 https if !{ ssl_fc }

但它以永无止境的循环结束,因为它的数据包已经没有 SSL。还有另一种方法可以在地址栏上获取前缀吗?它还针对多个域执行此操作,因此请尝试使用通配符执行此操作。

I have SSL termination before the HAPROXY

我假设您的意思是 SSL 在 ELB 上终止?

如果是:

redirect scheme https unless { hdr(x-forwarded-proto) -m str https }

HTTP 模式的 ELB 在 SSL 连接上添加 X-Forwarded-Proto: https。否则该值设置为 http。生成重定向,除非 header 值符合您的预期。